Octopus
box_cylinder_oct_m Module Reference

Data Types

interface  box_cylinder_t
 Class implementing a cylinder box. The cylinder axis is always along the first direction defined by the box_shape_t basis vectors. More...
 

Functions/Subroutines

class(box_cylinder_t) function, pointer box_cylinder_constructor (dim, center, axes, radius, length, namespace, periodic_boundaries)
 
subroutine box_cylinder_finalize (this)
 
recursive logical function, dimension(1:nn) box_cylinder_shape_contains_points (this, nn, xx)
 
logical function, dimension(1:nn) box_cylinder_shape_get_surface_points (this, namespace, mesh_spacing, nn, xx, number_of_layers)
 Get a mask for the grid points telling which of them are surface points. More...
 
subroutine box_cylinder_shape_get_surface_point_info (this, point_coordinates, mesh_spacing, normal_vector, surface_element)
 
subroutine box_cylinder_write_info (this, iunit, namespace)
 
character(len=box_info_len) function box_cylinder_short_info (this, unit_length)
 

Function/Subroutine Documentation

◆ box_cylinder_constructor()

class(box_cylinder_t) function, pointer box_cylinder_oct_m::box_cylinder_constructor ( integer, intent(in)  dim,
real(real64), dimension(dim), intent(in)  center,
real(real64), dimension(dim, dim), intent(in)  axes,
real(real64), intent(in)  radius,
real(real64), intent(in)  length,
type(namespace_t), intent(in)  namespace,
logical, intent(in), optional  periodic_boundaries 
)
private
Parameters
[in]radiuscylinder radius
[in]lengthlenght of the cylinder along the basis vectors
[in]periodic_boundariesare the bases of the cylinder to be treated as periodic?

Definition at line 155 of file box_cylinder.F90.

◆ box_cylinder_finalize()

subroutine box_cylinder_oct_m::box_cylinder_finalize ( type(box_cylinder_t), intent(inout)  this)
private

Definition at line 195 of file box_cylinder.F90.

◆ box_cylinder_shape_contains_points()

recursive logical function, dimension(1:nn) box_cylinder_oct_m::box_cylinder_shape_contains_points ( class(box_cylinder_t), intent(in)  this,
integer, intent(in)  nn,
real(real64), dimension(:,:), intent(in), contiguous  xx 
)
private

Definition at line 206 of file box_cylinder.F90.

◆ box_cylinder_shape_get_surface_points()

logical function, dimension(1:nn) box_cylinder_oct_m::box_cylinder_shape_get_surface_points ( class(box_cylinder_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
real(real64), dimension(:), intent(in)  mesh_spacing,
integer, intent(in)  nn,
real(real64), dimension(:,:), intent(in)  xx,
integer, intent(in), optional  number_of_layers 
)
private

Get a mask for the grid points telling which of them are surface points.

  1. Create a box that is fractionally smaller than the original.
  2. Look for points that belong to the original box but not to the smaller one - These define surface points

Definition at line 239 of file box_cylinder.F90.

◆ box_cylinder_shape_get_surface_point_info()

subroutine box_cylinder_oct_m::box_cylinder_shape_get_surface_point_info ( class(box_cylinder_t), intent(in)  this,
real(real64), dimension(:), intent(in)  point_coordinates,
real(real64), dimension(:), intent(in)  mesh_spacing,
real(real64), dimension(:), intent(out)  normal_vector,
real(real64), intent(out)  surface_element 
)
private
Parameters
[in]point_coordinates(x,y,z) coordinates of the point
[in]mesh_spacingspacing of the mesh
[out]normal_vectornormal vector to the surface point
[out]surface_elementsurface element (needed to compute the surface integral)

Definition at line 273 of file box_cylinder.F90.

◆ box_cylinder_write_info()

subroutine box_cylinder_oct_m::box_cylinder_write_info ( class(box_cylinder_t), intent(in)  this,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)
private

Definition at line 305 of file box_cylinder.F90.

◆ box_cylinder_short_info()

character(len=box_info_len) function box_cylinder_oct_m::box_cylinder_short_info ( class(box_cylinder_t), intent(in)  this,
type(unit_t), intent(in)  unit_length 
)
private

Definition at line 323 of file box_cylinder.F90.