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

A point zone that combines different point zones. More...

Inheritance diagram for combine_point_zone::combine_point_zone_t:
Collaboration diagram for combine_point_zone::combine_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 combine 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

type(point_zone_pointer_t), dimension(:), allocatable zones
 List of all the sub zones.
 
type(point_zone_wrapper_t), dimension(:), allocatable internal_zones
 List of the sub-zones to be created internally.
 
character(len=80), dimension(:), allocatable names
 List of the names of the sub-zones to construct.
 
integer n_zones = 0
 Number of total zones.
 
integer n_external_zones = 0
 Number of external zones to be filled by the registry.
 
integer n_internal_zones = 0
 Number of internal zone, to be created inside init.
 
character(len=:), allocatable operator
 Operator with which to combine the point zones (AND, OR, XOR)
 
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

Definition at line 49 of file combine_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) combine_point_zone::combine_point_zone_t::criterion ( class(combine_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 
)
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 72 of file combine_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) combine_point_zone::combine_point_zone_t::free ( class(combine_point_zone_t), intent(inout this)

Definition at line 69 of file combine_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) combine_point_zone::combine_point_zone_t::init ( class(combine_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 67 of file combine_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.

◆ internal_zones

type(point_zone_wrapper_t), dimension(:), allocatable combine_point_zone::combine_point_zone_t::internal_zones

Definition at line 53 of file combine_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.

◆ n_external_zones

integer combine_point_zone::combine_point_zone_t::n_external_zones = 0

Definition at line 59 of file combine_point_zone.f90.

◆ n_internal_zones

integer combine_point_zone::combine_point_zone_t::n_internal_zones = 0

Definition at line 61 of file combine_point_zone.f90.

◆ n_zones

integer combine_point_zone::combine_point_zone_t::n_zones = 0

Definition at line 57 of file combine_point_zone.f90.

◆ name

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

Definition at line 60 of file point_zone.f90.

◆ names

character(len=80), dimension(:), allocatable combine_point_zone::combine_point_zone_t::names

Definition at line 55 of file combine_point_zone.f90.

◆ operator

character(len=:), allocatable combine_point_zone::combine_point_zone_t::operator

Definition at line 64 of file combine_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.

◆ zones

type(point_zone_pointer_t), dimension(:), allocatable combine_point_zone::combine_point_zone_t::zones

Definition at line 51 of file combine_point_zone.f90.


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