Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
A sphere-shaped 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) | x0 |
real(kind=rp) | y0 |
real(kind=rp) | z0 |
real(kind=rp) | radius |
integer, dimension(:), allocatable | mask |
List of linear indices of the GLL points in the zone. | |
type(c_ptr) | mask_d = c_null_ptr |
List of linear indices of the GLL points in the zone on the device. | |
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 sphere is described by its center of coordinates x0,y0,z0
and its radius, specified in the json file as e.g. "center": [<x0>, <y0>, <z0>]", "radius": <r>
.
Definition at line 47 of file sphere_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 71 of file point_zone.f90.
|
pure virtualinherited |
Definition at line 80 of file point_zone.f90.
procedure, pass(this) sphere_point_zone::sphere_point_zone_t::criterion | ( | class(sphere_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 | ||
) |
\begin{eqnarray*} |\vec{X} - \vec{X_0}|^2 \le r \end{eqnarray*}
Where \( r \) is the radius of the sphere and \( \vec{X_0} = (x_0, y_0, z_0) \) the coordinates of its center.
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 sphere_point_zone.f90.
|
inherited |
Definition at line 69 of file point_zone.f90.
|
pure virtualinherited |
Definition at line 78 of file point_zone.f90.
procedure, pass(this) sphere_point_zone::sphere_point_zone_t::free | ( | class(sphere_point_zone_t), intent(inout) | this | ) |
Definition at line 56 of file sphere_point_zone.f90.
|
inherited |
Definition at line 67 of file point_zone.f90.
|
pure virtualinherited |
Definition at line 76 of file point_zone.f90.
procedure, pass(this) sphere_point_zone::sphere_point_zone_t::init | ( | class(sphere_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 sphere_point_zone.f90.
|
inherited |
object | The object allocated by the factory. |
json | JSON object initializing the point zone. |
dof | Dofmap from which to map the point zone. Constructor for the point_zone_t base type. |
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 65 of file point_zone.f90.
|
inherited |
dof | Dofmap of points to go through. |
Definition at line 74 of file point_zone.f90.
Definition at line 58 of file point_zone.f90.
|
inherited |
Definition at line 62 of file point_zone.f90.
|
inherited |
Definition at line 49 of file point_zone.f90.
|
inherited |
Definition at line 51 of file point_zone.f90.
|
inherited |
Definition at line 60 of file point_zone.f90.
Definition at line 51 of file sphere_point_zone.f90.
|
privateinherited |
Definition at line 53 of file point_zone.f90.
|
inherited |
Definition at line 55 of file point_zone.f90.
Definition at line 48 of file sphere_point_zone.f90.
Definition at line 49 of file sphere_point_zone.f90.
Definition at line 50 of file sphere_point_zone.f90.