| 
    Neko 1.99.1
    
   A portable framework for high-order spectral element flow simulations 
   | 
 
A cylindrical point zone. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json, size) | 
| Constructor from json object file.   | |
| procedure, pass(this) | free (this) | 
| Destructor.   | |
| procedure, pass(this) | criterion (this, x, y, z, j, k, l, e) | 
| Defines the criterion of selection of a GLL point in the sphere point zone.   | |
| procedure, pass(this) | init_base (this, size, name, invert) | 
| Constructor for the point_zone_t base type.   | |
| procedure, pass(this) | free_base (this) | 
| Destructor for the point_zone_t base type.   | |
| procedure, pass(this) | finalize (this) | 
| Builds the mask from the scratch stack.   | |
| procedure, pass(this) | add (this, idx) | 
| Adds a point's linear index to the scratch stack.   | |
| procedure, pass(this) | map (this, dof) | 
Maps the GLL points that verify a point_zone's criterion by adding them to the stack.   | |
| procedure(point_zone_init), deferred, pass | init (this, json, size) | 
| The common constructor using a JSON object.   | |
| procedure(point_zone_free), deferred, pass | free (this) | 
| Destructor.   | |
| procedure(point_zone_criterion), deferred, pass | criterion (this, x, y, z, j, k, l, e) | 
| Defines the criterion of selection of a GLL point to the point_zone.   | |
Public Attributes | |
| real(kind=rp), dimension(3) | p0 | 
| real(kind=rp), dimension(3) | p1 | 
| real(kind=rp) | radius | 
| type(mask_t) | mask | 
| List of linear indices of the GLL points in the zone.   | |
| integer | size = 0 | 
| Size of the point zone mask.   | |
| character(len=80) | name | 
| Name of the point zone (used for retrieval in the point_zone_registry).   | |
| logical | invert = .false. | 
| If we select the inverse of the criterion or not.   | |
Private Attributes | |
| type(stack_i4_t), private | scratch | 
| Scratch stack of integers to build the list mask.   | |
| logical, private | finalized = .false. | 
| Flag to indicate if point_zone_finalize has been called and the mask has been built.   | |
As defined here, a cylinder is described by its two end points and its radius, specified in the json file as e.g. "start": [<x0>, <y0>, <z0>]",
 "start": [<x1>, <y1>, <z1>]", "radius": <r>. 
Definition at line 48 of file cylinder_point_zone.f90.
      
  | 
  inherited | 
| idx | Linear index of the point to add. | 
(j,k,l,e) can be retrieved using the subroutine linear_index(j,k,l,e,lx) in the utils module. Definition at line 70 of file point_zone.f90.
      
  | 
  pure virtualinherited | 
Definition at line 79 of file point_zone.f90.
| procedure, pass(this) cylinder_point_zone::cylinder_point_zone_t::criterion | ( | class(cylinder_point_zone_t), intent(in) | this, | 
| real(kind=rp), intent(in) | x, | ||
| real(kind=rp), intent(in) | y, | ||
| real(kind=rp), intent(in) | z, | ||
| integer, intent(in) | j, | ||
| integer, intent(in) | k, | ||
| integer, intent(in) | l, | ||
| integer, intent(in) | e | ||
| ) | 
A GLL point of coordinates \( \vec{X} = (x, y, z) \) is considered as being inside the cylinder defined by endpoints \( \vec{p_0} \) and \( \vec{p_1} \) and radius \( r \) if it satisfies the following conditions:
\begin{eqnarray*} ||\vec{X} - \vec{X_0}|| &\le& r\\ 0 &\le& t \le 1 \end{eqnarray*}
where,
\begin{eqnarray*} t &=& (\vec{X} - \vec{p_0}) \cdot (\vec{p_1} - \vec{p_0}) / ||\vec{p_1} - \vec{p_0}|| \\ \vec{X_0} &=& \vec{p_0} + t \cdot (\vec{p_1} - \vec{p_0}) \end{eqnarray*}
| x | x-coordinate of the GLL point. | 
| y | y-coordinate of the GLL point. | 
| z | z-coordinate of the GLL point. | 
| j | 1st nonlinear index of the GLL point. | 
| k | 2nd nonlinear index of the GLL point. | 
| l | 3rd nonlinear index of the GLL point. | 
| e | element index of the GLL point. | 
Definition at line 59 of file cylinder_point_zone.f90.
      
  | 
  inherited | 
Definition at line 68 of file point_zone.f90.
      
  | 
  pure virtualinherited | 
Definition at line 77 of file point_zone.f90.
| procedure, pass(this) cylinder_point_zone::cylinder_point_zone_t::free | ( | class(cylinder_point_zone_t), intent(inout) | this | ) | 
Definition at line 56 of file cylinder_point_zone.f90.
      
  | 
  inherited | 
Definition at line 66 of file point_zone.f90.
      
  | 
  pure virtualinherited | 
Definition at line 75 of file point_zone.f90.
| procedure, pass(this) cylinder_point_zone::cylinder_point_zone_t::init | ( | class(cylinder_point_zone_t), intent(inout) | this, | 
| type(json_file), intent(inout) | json, | ||
| integer, intent(in) | size | ||
| ) | 
| json | Json object file. | 
| size | Size with which to initialize the stack | 
Definition at line 54 of file cylinder_point_zone.f90.
      
  | 
  inherited | 
| size | Size of the scratch stack. | 
| name | Name of the point zone. | 
| invert | Flag to indicate wether or not to invert the selection of points. | 
Definition at line 64 of file point_zone.f90.
      
  | 
  inherited | 
| dof | Dofmap of points to go through. | 
Definition at line 73 of file point_zone.f90.
Definition at line 57 of file point_zone.f90.
      
  | 
  inherited | 
Definition at line 61 of file point_zone.f90.
      
  | 
  inherited | 
Definition at line 50 of file point_zone.f90.
      
  | 
  inherited | 
Definition at line 59 of file point_zone.f90.
Definition at line 49 of file cylinder_point_zone.f90.
Definition at line 50 of file cylinder_point_zone.f90.
Definition at line 51 of file cylinder_point_zone.f90.
      
  | 
  privateinherited | 
Definition at line 52 of file point_zone.f90.
      
  | 
  inherited | 
Definition at line 54 of file point_zone.f90.