Octopus
boundaries_oct_m Module Reference

Module implementing boundary conditions in Octopus. More...

Detailed Description

Module implementing boundary conditions in Octopus.

Octopus can treat systems with various boundary conditions:

  • zero boundary conditions
  • periodic boundary conditions
  • spiral boundary conditions

Data Types

interface  boundaries_set
 
type  boundaries_t
 This class contains information about the boundary conditions. More...
 
type  par_vec_handle_batch_t
 auxiliary handle for ghost updates More...
 

Functions/Subroutines

subroutine, public boundaries_init (this, namespace, space, mesh, qvector)
 initialize the boundary contitions More...
 
subroutine, public boundaries_end (this)
 
subroutine boundaries_set_batch (this, mesh, ffb, phase_correction, buff_phase_corr, offset, async)
 
subroutine, public zpar_vec_ghost_update (pv, v_local)
 Updates ghost points of every node. More...
 
subroutine, public zghost_update_batch_start (pv, v_local, handle)
 
subroutine, public zghost_update_batch_finish (handle)
 
subroutine zboundaries_set_batch (boundaries, mesh, ffb, phase_correction, buff_phase_corr, offset, async)
 Set all boundary points in ffb. More...
 
subroutine zboundaries_set_single (boundaries, mesh, ff, phase_correction, buff_phase_corr, offset)
 set boundary conditions for a single mesh function More...
 
subroutine, public dpar_vec_ghost_update (pv, v_local)
 Updates ghost points of every node. More...
 
subroutine, public dghost_update_batch_start (pv, v_local, handle)
 
subroutine, public dghost_update_batch_finish (handle)
 
subroutine dboundaries_set_batch (boundaries, mesh, ffb, phase_correction, buff_phase_corr, offset, async)
 Set all boundary points in ffb. More...
 
subroutine dboundaries_set_single (boundaries, mesh, ff, phase_correction, buff_phase_corr, offset)
 set boundary conditions for a single mesh function More...
 

Variables

integer, parameter, public point_boundary = 1
 
integer, parameter, public point_inner = 2
 

Function/Subroutine Documentation

◆ boundaries_init()

subroutine, public boundaries_oct_m::boundaries_init ( type(boundaries_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(mesh_t), intent(in), target  mesh,
real(real64), dimension(:), intent(in), optional  qvector 
)

initialize the boundary contitions

Parameters
[in]qvectormomentum transfer for spiral BC

Definition at line 226 of file boundaries.F90.

◆ boundaries_end()

subroutine, public boundaries_oct_m::boundaries_end ( type(boundaries_t), intent(inout)  this)

Definition at line 427 of file boundaries.F90.

◆ boundaries_set_batch()

subroutine boundaries_oct_m::boundaries_set_batch ( type(boundaries_t), intent(in)  this,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout)  ffb,
complex(real64), dimension(:), intent(in), optional  phase_correction,
type(accel_mem_t), intent(in), optional  buff_phase_corr,
integer, intent(in), optional  offset,
logical, intent(in), optional  async 
)
private

Definition at line 457 of file boundaries.F90.

◆ zpar_vec_ghost_update()

subroutine, public boundaries_oct_m::zpar_vec_ghost_update ( type(par_vec_t), intent(in)  pv,
complex(real64), dimension(:), intent(inout), contiguous  v_local 
)

Updates ghost points of every node.

A vector suitable for non-local operations contains local values and ghost point values. Length of v_local must be pvnp_local+pvnp_ghost

Parameters
[in]pvdescriptor of the domain parallelization
[in,out]v_localmesh function to be updated

Definition at line 555 of file boundaries.F90.

◆ zghost_update_batch_start()

subroutine, public boundaries_oct_m::zghost_update_batch_start ( type(par_vec_t), intent(in), target  pv,
class(batch_t), intent(inout), target  v_local,
type(par_vec_handle_batch_t), intent(out)  handle 
)
Parameters
[in]pvdescriptor of the domain parallelization
[in,out]v_localbatch of mesh functions to be updated
[out]handlehandle to be passed to the finish() routine

Definition at line 585 of file boundaries.F90.

◆ zghost_update_batch_finish()

subroutine, public boundaries_oct_m::zghost_update_batch_finish ( type(par_vec_handle_batch_t), intent(inout)  handle)

Definition at line 762 of file boundaries.F90.

◆ zboundaries_set_batch()

subroutine boundaries_oct_m::zboundaries_set_batch ( type(boundaries_t), intent(in)  boundaries,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout), target  ffb,
complex(real64), dimension(:), intent(in), optional  phase_correction,
type(accel_mem_t), intent(in), optional  buff_phase_corr,
integer, intent(in), optional  offset,
logical, intent(in), optional  async 
)
private

Set all boundary points in ffb.

Parameters
[in]boundariesthe boundary conditions
[in]meshunderlying mesh
[in,out]ffbbatch to be operated on
[in]phase_correctionoptional phase corrections (see ...)
[in]buff_phase_corrdevice buffer for phase corrections
[in]offsetoffset for accessing the phase corrections

Definition at line 803 of file boundaries.F90.

◆ zboundaries_set_single()

subroutine boundaries_oct_m::zboundaries_set_single ( type(boundaries_t), intent(in)  boundaries,
class(mesh_t), intent(in)  mesh,
complex(real64), dimension(:), intent(inout), target, contiguous  ff,
complex(real64), dimension(:), intent(in), optional  phase_correction,
type(accel_mem_t), intent(in), optional  buff_phase_corr,
integer, intent(in), optional  offset 
)
private

set boundary conditions for a single mesh function

Definition at line 1309 of file boundaries.F90.

◆ dpar_vec_ghost_update()

subroutine, public boundaries_oct_m::dpar_vec_ghost_update ( type(par_vec_t), intent(in)  pv,
real(real64), dimension(:), intent(inout), contiguous  v_local 
)

Updates ghost points of every node.

A vector suitable for non-local operations contains local values and ghost point values. Length of v_local must be pvnp_local+pvnp_ghost

Parameters
[in]pvdescriptor of the domain parallelization
[in,out]v_localmesh function to be updated

Definition at line 1412 of file boundaries.F90.

◆ dghost_update_batch_start()

subroutine, public boundaries_oct_m::dghost_update_batch_start ( type(par_vec_t), intent(in), target  pv,
class(batch_t), intent(inout), target  v_local,
type(par_vec_handle_batch_t), intent(out)  handle 
)
Parameters
[in]pvdescriptor of the domain parallelization
[in,out]v_localbatch of mesh functions to be updated
[out]handlehandle to be passed to the finish() routine

Definition at line 1442 of file boundaries.F90.

◆ dghost_update_batch_finish()

subroutine, public boundaries_oct_m::dghost_update_batch_finish ( type(par_vec_handle_batch_t), intent(inout)  handle)

Definition at line 1619 of file boundaries.F90.

◆ dboundaries_set_batch()

subroutine boundaries_oct_m::dboundaries_set_batch ( type(boundaries_t), intent(in)  boundaries,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout), target  ffb,
complex(real64), dimension(:), intent(in), optional  phase_correction,
type(accel_mem_t), intent(in), optional  buff_phase_corr,
integer, intent(in), optional  offset,
logical, intent(in), optional  async 
)
private

Set all boundary points in ffb.

Parameters
[in]boundariesthe boundary conditions
[in]meshunderlying mesh
[in,out]ffbbatch to be operated on
[in]phase_correctionoptional phase corrections (see ...)
[in]buff_phase_corrdevice buffer for phase corrections
[in]offsetoffset for accessing the phase corrections

Definition at line 1660 of file boundaries.F90.

◆ dboundaries_set_single()

subroutine boundaries_oct_m::dboundaries_set_single ( type(boundaries_t), intent(in)  boundaries,
class(mesh_t), intent(in)  mesh,
real(real64), dimension(:), intent(inout), target, contiguous  ff,
complex(real64), dimension(:), intent(in), optional  phase_correction,
type(accel_mem_t), intent(in), optional  buff_phase_corr,
integer, intent(in), optional  offset 
)
private

set boundary conditions for a single mesh function

Definition at line 2166 of file boundaries.F90.

Variable Documentation

◆ point_boundary

integer, parameter, public boundaries_oct_m::point_boundary = 1

Definition at line 193 of file boundaries.F90.

◆ point_inner

integer, parameter, public boundaries_oct_m::point_inner = 2

Definition at line 193 of file boundaries.F90.