44    type(cgal_polyhedra_t) :: cgal_poly
 
   45    character(len=1024) :: filename
 
   54    procedure box_cgal_constructor
 
   61    integer,             
intent(in) :: dim
 
   62    real(real64),        
intent(in) :: center(dim)
 
   63    character(len=*),    
intent(in) :: filename
 
   64    real(real64),        
intent(in) :: length(dim)
 
   65    type(namespace_t),   
intent(in) :: namespace
 
   66    class(box_cgal_t), 
pointer :: box
 
   71      message(1) = 
"CGAL boxes can only be used in 3 dimensions." 
   80      bounding_box_max=
m_half*length)
 
   82    box%filename = trim(filename)
 
   85    box%bounding_box_l = 
m_half*length + abs(center)
 
   92    type(box_cgal_t), 
intent(inout) :: this
 
  104    class(box_cgal_t), 
intent(in)  :: this
 
  105    integer,           
intent(in)  :: nn
 
  106    real(real64), 
contiguous, 
intent(in)  :: xx(:,:)
 
  107    logical :: contained(1:nn)
 
  114    contained(:) = .false.
 
  118        .neqv. this%is_inside_out()
 
  125    class(box_cgal_t),           
intent(in) :: this
 
  126    integer,           
optional, 
intent(in) :: iunit
 
  127    type(namespace_t), 
optional, 
intent(in) :: namespace
 
  131    write(
message(1),
'(2x,a)') 
'Type = cgal' 
  132    write(
message(2),
'(2x,a,x,a)') 
'Loaded shape data from file', trim(this%filename)
 
  145    write(
info,
'(3a)') 
'BoxShape = cgal; BoxCgalFile = ', trim(this%filename)
 
class(box_cgal_t) function, pointer box_cgal_constructor(dim, center, filename, length, namespace)
 
subroutine box_cgal_write_info(this, iunit, namespace)
 
subroutine box_cgal_finalize(this)
 
character(len=box_info_len) function box_cgal_short_info(this, unit_length)
 
logical function, dimension(1:nn) box_cgal_shape_contains_points(this, nn, xx)
 
subroutine, public box_shape_init(this, namespace, dim, center, bounding_box_min, bounding_box_max, axes)
 
subroutine, public box_shape_end(this)
 
subroutine, public cgal_polyhedron_init(cgal_poly, fname, verbose)
 
logical function, public cgal_polyhedron_point_inside(cgal_poly, xq, yq, zq)
 
subroutine, public cgal_polyhedron_end(cgal_poly)
 
real(real64), parameter, public m_half
 
subroutine, public messages_info(no_lines, iunit, verbose_limit, stress, all_nodes, namespace)
 
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
 
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
 
brief This module defines the class unit_t which is used by the unit_systems_oct_m module.
 
Class implementing a box defined by a file read using the cgal library.
 
Base class for more specialized boxes that are defined by a shape and have a center and basis vectors...