Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
sphere_point_zone::sphere_point_zone_t Type Referenceabstract

A sphere-shaped point zone. More...

Inheritance diagram for sphere_point_zone::sphere_point_zone_t:
Collaboration diagram for sphere_point_zone::sphere_point_zone_t:

Public Member Functions

procedure, pass(thisinit (this, json, size)
 Constructor from json object file.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscriterion (this, x, y, z, j, k, l, e)
 Defines the criterion of selection of a GLL point in the sphere point zone.
 
procedure, pass(thisinit_base (this, size, name, invert)
 Constructor for the point_zone_t base type.
 
procedure, pass(thisfree_base (this)
 Destructor for the point_zone_t base type.
 
procedure, pass(thisfinalize (this)
 Builds the mask from the scratch stack.
 
procedure, pass(thisadd (this, idx)
 Adds a point's linear index to the scratch stack.
 
procedure, pass(thismap (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.
 

Detailed Description

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.

Member Function/Subroutine Documentation

◆ add()

procedure, pass(this) point_zone::point_zone_t::add ( class(point_zone_t), intent(inout this,
integer, intent(inout idx 
)
inherited
Parameters
idxLinear index of the point to add.
Note
The linear index of a point (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.

◆ criterion() [1/2]

procedure(point_zone_criterion), deferred, pass point_zone::point_zone_t::criterion ( class(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 
)
pure virtualinherited

Definition at line 80 of file point_zone.f90.

◆ criterion() [2/2]

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.

Parameters
xx-coordinate of the GLL point.
yy-coordinate of the GLL point.
zz-coordinate of the GLL point.
j1st nonlinear index of the GLL point.
k2nd nonlinear index of the GLL point.
l3rd nonlinear index of the GLL point.
eelement index of the GLL point.

Definition at line 59 of file sphere_point_zone.f90.

◆ finalize()

procedure, pass(this) point_zone::point_zone_t::finalize ( class(point_zone_t), intent(inout this)
inherited

Definition at line 69 of file point_zone.f90.

◆ free() [1/2]

procedure(point_zone_free), deferred, pass point_zone::point_zone_t::free ( class(point_zone_t), intent(inout this)
pure virtualinherited

Definition at line 78 of file point_zone.f90.

◆ free() [2/2]

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.

◆ free_base()

procedure, pass(this) point_zone::point_zone_t::free_base ( class(point_zone_t), intent(inout this)
inherited

Definition at line 67 of file point_zone.f90.

◆ init() [1/2]

procedure(point_zone_init), deferred, pass point_zone::point_zone_t::init ( class(point_zone_t), intent(inout this,
type(json_file), intent(inout json,
integer, intent(in size 
)
pure virtualinherited

Definition at line 76 of file point_zone.f90.

◆ init() [2/2]

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 
)
Parameters
jsonJson object file.
sizeSize with which to initialize the stack

Definition at line 54 of file sphere_point_zone.f90.

◆ init_base()

procedure, pass(this) point_zone::point_zone_t::init_base ( class(point_zone_t), intent(inout this,
integer, intent(in), optional  size,
character(len=*), intent(in name,
logical, intent(in invert 
)
inherited
Parameters
objectThe object allocated by the factory.
jsonJSON object initializing the point zone.
dofDofmap from which to map the point zone. Constructor for the point_zone_t base type.
sizeSize of the scratch stack.
nameName of the point zone.
invertFlag to indicate wether or not to invert the selection of points.

Definition at line 65 of file point_zone.f90.

◆ map()

procedure, pass(this) point_zone::point_zone_t::map ( class(point_zone_t), intent(inout this,
type(dofmap_t), intent(in dof 
)
inherited
Parameters
dofDofmap of points to go through.

Definition at line 74 of file point_zone.f90.

Member Data Documentation

◆ finalized

logical, private point_zone::point_zone_t::finalized = .false.
privateinherited

Definition at line 58 of file point_zone.f90.

◆ invert

logical point_zone::point_zone_t::invert = .false.
inherited

Definition at line 62 of file point_zone.f90.

◆ mask

integer, dimension(:), allocatable point_zone::point_zone_t::mask
inherited

Definition at line 49 of file point_zone.f90.

◆ mask_d

type(c_ptr) point_zone::point_zone_t::mask_d = c_null_ptr
inherited

Definition at line 51 of file point_zone.f90.

◆ name

character(len=80) point_zone::point_zone_t::name
inherited

Definition at line 60 of file point_zone.f90.

◆ radius

real(kind=rp) sphere_point_zone::sphere_point_zone_t::radius

Definition at line 51 of file sphere_point_zone.f90.

◆ scratch

type(stack_i4_t), private point_zone::point_zone_t::scratch
privateinherited

Definition at line 53 of file point_zone.f90.

◆ size

integer point_zone::point_zone_t::size = 0
inherited

Definition at line 55 of file point_zone.f90.

◆ x0

real(kind=rp) sphere_point_zone::sphere_point_zone_t::x0

Definition at line 48 of file sphere_point_zone.f90.

◆ y0

real(kind=rp) sphere_point_zone::sphere_point_zone_t::y0

Definition at line 49 of file sphere_point_zone.f90.

◆ z0

real(kind=rp) sphere_point_zone::sphere_point_zone_t::z0

Definition at line 50 of file sphere_point_zone.f90.


The documentation for this type was generated from the following file: