Octopus
box_sphere_oct_m Module Reference

Data Types

interface  box_sphere_t
 Class implementing a spherical box. More...
 

Functions/Subroutines

class(box_sphere_t) function, pointer box_sphere_constructor (dim, center, radius, namespace)
 
subroutine box_sphere_finalize (this)
 
logical function, dimension(1:nn) box_sphere_shape_contains_points (this, nn, xx)
 
logical function, dimension(1:nn) box_sphere_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_sphere_shape_get_surface_point_info (this, point_coordinates, mesh_spacing, normal_vector, surface_element)
 
subroutine box_sphere_write_info (this, iunit, namespace)
 
character(len=box_info_len) function box_sphere_short_info (this, unit_length)
 

Function/Subroutine Documentation

◆ box_sphere_constructor()

class(box_sphere_t) function, pointer box_sphere_oct_m::box_sphere_constructor ( integer, intent(in)  dim,
real(real64), dimension(dim), intent(in)  center,
real(real64), intent(in)  radius,
type(namespace_t), intent(in)  namespace 
)
private

Definition at line 150 of file box_sphere.F90.

◆ box_sphere_finalize()

subroutine box_sphere_oct_m::box_sphere_finalize ( type(box_sphere_t), intent(inout)  this)
private

Definition at line 174 of file box_sphere.F90.

◆ box_sphere_shape_contains_points()

logical function, dimension(1:nn) box_sphere_oct_m::box_sphere_shape_contains_points ( class(box_sphere_t), intent(in)  this,
integer, intent(in)  nn,
real(real64), dimension(:,:), intent(in), contiguous  xx 
)
private

Definition at line 185 of file box_sphere.F90.

◆ box_sphere_shape_get_surface_points()

logical function, dimension(1:nn) box_sphere_oct_m::box_sphere_shape_get_surface_points ( class(box_sphere_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 204 of file box_sphere.F90.

◆ box_sphere_shape_get_surface_point_info()

subroutine box_sphere_oct_m::box_sphere_shape_get_surface_point_info ( class(box_sphere_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 236 of file box_sphere.F90.

◆ box_sphere_write_info()

subroutine box_sphere_oct_m::box_sphere_write_info ( class(box_sphere_t), intent(in)  this,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)
private

Definition at line 275 of file box_sphere.F90.

◆ box_sphere_short_info()

character(len=box_info_len) function box_sphere_oct_m::box_sphere_short_info ( class(box_sphere_t), intent(in)  this,
type(unit_t), intent(in)  unit_length 
)
private

Definition at line 291 of file box_sphere.F90.