38  use json_module, 
only: json_file
 
   49     real(kind=
rp), 
dimension(3) :: p0
 
   50     real(kind=
rp), 
dimension(3) :: p1
 
   51     real(kind=
rp) :: radius
 
 
   69    type(json_file), 
intent(inout) :: json
 
   70    integer, 
intent(in) :: size
 
   72    character(len=:), 
allocatable :: name
 
   73    real(kind=
rp), 
dimension(:), 
allocatable :: p0, p1
 
   74    real(kind=
rp) :: radius
 
   80    call json_get(json, 
"radius", radius)
 
   83    if (all(shape(p0) .ne. (/3/))) 
then 
   84       call neko_error(
"Cylinder point zone: invalid start point")
 
   87    if (all(shape(p1) .ne. (/3/))) 
then 
   88       call neko_error(
"Cylinder point zone: invalid end point")
 
   91    if (radius .lt. 0.0_rp) 
then 
   92       call neko_error(
"Cylinder point zone: invalid radius")
 
 
  111    integer, 
intent(in), 
optional :: size
 
  112    character(len=*), 
intent(in) :: name
 
  113    logical, 
intent(in) :: invert
 
  114    real(kind=
rp), 
intent(in), 
dimension(3) :: p0
 
  115    real(kind=
rp), 
intent(in), 
dimension(3) :: p1
 
  116    real(kind=
rp), 
intent(in) :: radius
 
  118    call this%init_base(
size, name, invert)
 
 
  130    call this%free_base()
 
 
  164    real(kind=
rp), 
intent(in) :: x
 
  165    real(kind=
rp), 
intent(in) :: y
 
  166    real(kind=
rp), 
intent(in) :: z
 
  167    integer, 
intent(in) :: j
 
  168    integer, 
intent(in) :: k
 
  169    integer, 
intent(in) :: l
 
  170    integer, 
intent(in) :: e
 
  173    real(kind=
rp), 
dimension(3) :: p
 
  174    real(kind=
rp), 
dimension(3) :: centerline
 
  175    real(kind=
rp), 
dimension(3) :: vec_p
 
  178    real(kind=
rp) :: distance
 
  182    centerline = this%p1 - this%p0
 
  184    t = dot_product(vec_p, centerline) / dot_product(centerline, centerline)
 
  189    is_inside = t >= 0.0_rp .and. t <= 1.0_rp .and. distance <= this%radius
 
 
Retrieves a parameter by name or assigns a provided default value. In the latter case also adds the m...
 
Retrieves a parameter by name or throws an error.
 
Implements a cylinder geometry subset.
 
subroutine cylinder_point_zone_free(this)
Destructor.
 
subroutine cylinder_point_zone_init_common(this, size, name, invert, p0, p1, radius)
Initializes a cylinder point zone from its endpoint coordinates and radius.
 
pure logical function cylinder_point_zone_criterion(this, x, y, z, j, k, l, e)
Defines the criterion of selection of a GLL point in the cylinder point zone.
 
subroutine cylinder_point_zone_init_from_json(this, json, size)
Constructor from json object file.
 
Utilities for retrieving parameters from the case files.
 
integer, parameter, public rp
Global precision used in computations.
 
Project x onto X, the space of old solutions and back again.
 
A cylindrical point zone.
 
Base abstract type for point zones.