Neko  0.8.1
A portable framework for high-order spectral element flow simulations
mesh::mesh_t Type Reference
Collaboration diagram for mesh::mesh_t:

Public Member Functions

procedure, pass(this) free => mesh_free
 
procedure, pass(this) finalize => mesh_finalize
 
procedure, pass(this) mark_wall_facet => mesh_mark_wall_facet
 
procedure, pass(this) mark_inlet_facet => mesh_mark_inlet_facet
 
procedure, pass(this) mark_outlet_facet => mesh_mark_outlet_facet
 
procedure, pass(this) mark_sympln_facet => mesh_mark_sympln_facet
 
procedure, pass(this) mark_periodic_facet => mesh_mark_periodic_facet
 
procedure, pass(this) mark_outlet_normal_facet => mesh_mark_outlet_normal_facet
 
procedure, pass(this) mark_labeled_facet => mesh_mark_labeled_facet
 
procedure, pass(this) mark_curve_element => mesh_mark_curve_element
 
procedure, pass(this) apply_periodic_facet => mesh_apply_periodic_facet
 
procedure, pass(this) all_deformed => mesh_all_deformed
 
procedure, pass(this) get_facet_ids => mesh_get_facet_ids
 
procedure, pass(this) reset_periodic_ids => mesh_reset_periodic_ids
 
procedure, pass(this) create_periodic_ids => mesh_create_periodic_ids
 
procedure, pass(this) generate_conn => mesh_generate_conn
 
procedure, pass(this) have_point_glb_idx => mesh_have_point_glb_idx
 
generic init => init_nelv, init_dist
 Initialise a mesh. More...
 
generic add_element => add_quad, add_hex
 Add an element to the mesh. More...
 
generic get_local => get_local_point, get_local_edge, get_local_facet
 Get local id for a mesh entity. More...
 
generic get_global => get_global_edge, get_global_facet
 Get global id for a mesh entity. More...
 
generic is_shared => is_shared_point, is_shared_edge, is_shared_facet
 Check if a mesh entity is shared. More...
 

Public Attributes

integer nelv
 Number of elements. More...
 
integer npts
 Number of points per element. More...
 
integer gdim
 Geometric dimension. More...
 
integer mpts
 Number of (unique) points in the mesh. More...
 
integer mfcs
 Number of (unique) faces in the mesh. More...
 
integer meds
 Number of (unique) edges in the mesh. More...
 
integer glb_nelv
 Global number of elements. More...
 
integer glb_mpts
 Global number of unique points. More...
 
integer glb_mfcs
 Global number of unique faces. More...
 
integer glb_meds
 Global number of unique edges. More...
 
integer offset_el
 Element offset. More...
 
integer max_pts_id
 Max local point id. More...
 
type(point_t), dimension(:), allocatable points
 list of points More...
 
type(mesh_element_t), dimension(:), allocatable elements
 List of elements. More...
 
logical, dimension(:), allocatable dfrmd_el
 List of elements. More...
 
type(htable_i4_thtp
 Table of unique points (global->local) More...
 
type(htable_i4t4_thtf
 Table of unique faces (facet->local id) More...
 
type(htable_i4t2_thte
 Table of unique edges (edge->local id) More...
 
integer, dimension(:,:), allocatable facet_neigh
 Facet to neigh. element table. More...
 
class(htable_t), allocatable facet_map
 Facet to element's id tuple and the mapping of the points between lower id element and higher \( t=(low_id element, element with higher global id) \). More...
 
type(stack_i4_t), dimension(:), allocatable point_neigh
 Point to neigh. table. More...
 
type(distdata_tddata
 Mesh distributed data. More...
 
logical, dimension(:), allocatable neigh
 Neighbouring ranks. More...
 
integer, dimension(:), allocatable neigh_order
 Neighbour order. More...
 
integer(2), dimension(:,:), allocatable facet_type
 Facet type. More...
 
type(facet_zone_twall
 Zone of wall facets. More...
 
type(facet_zone_tinlet
 Zone of inlet facets. More...
 
type(facet_zone_toutlet
 Zone of outlet facets. More...
 
type(facet_zone_toutlet_normal
 Zone of outlet normal facets. More...
 
type(facet_zone_tsympln
 Zone of symmetry plane facets. More...
 
type(facet_zone_t), dimension(:), allocatable labeled_zones
 Zones with labeled facets. More...
 
type(facet_zone_periodic_tperiodic
 Zones with periodic facets. More...
 
type(curve_tcurve
 Set of curved elements. More...
 
logical lconn = .false.
 valid connectivity More...
 
logical ldist = .false.
 valid distributed data More...
 
logical lnumr = .false.
 valid numbering More...
 
logical lgenc = .true.
 generate connectivity More...
 
procedure(mesh_deform), pointer, pass apply_deform => null()
 enables user to specify a deformation that is applied to all x,y,z coordinates generated with this mesh More...
 

Private Member Functions

procedure, pass(this), private init_nelv => mesh_init_nelv
 
procedure, pass(this), private init_dist => mesh_init_dist
 
procedure, pass(this), private add_quad => mesh_add_quad
 
procedure, pass(this), private add_hex => mesh_add_hex
 
procedure, pass(this), private add_edge => mesh_add_edge
 
procedure, pass(this), private add_face => mesh_add_face
 
procedure, pass(this), private add_point => mesh_add_point
 
procedure, pass(this), private get_local_point => mesh_get_local_point
 
procedure, pass(this), private get_local_edge => mesh_get_local_edge
 
procedure, pass(this), private get_local_facet => mesh_get_local_facet
 
procedure, pass(this), private get_global_edge => mesh_get_global_edge
 
procedure, pass(this), private get_global_facet => mesh_get_global_facet
 
procedure, pass(this), private is_shared_point => mesh_is_shared_point
 
procedure, pass(this), private is_shared_edge => mesh_is_shared_edge
 
procedure, pass(this), private is_shared_facet => mesh_is_shared_facet
 

Detailed Description

Definition at line 63 of file mesh.f90.

Member Function/Subroutine Documentation

◆ add_edge()

procedure, pass(this), private mesh::mesh_t::add_edge
private

Definition at line 123 of file mesh.f90.

◆ add_element()

generic mesh::mesh_t::add_element

Add an element to the mesh.

Definition at line 155 of file mesh.f90.

◆ add_face()

procedure, pass(this), private mesh::mesh_t::add_face
private

Definition at line 124 of file mesh.f90.

◆ add_hex()

procedure, pass(this), private mesh::mesh_t::add_hex
private

Definition at line 122 of file mesh.f90.

◆ add_point()

procedure, pass(this), private mesh::mesh_t::add_point
private

Definition at line 125 of file mesh.f90.

◆ add_quad()

procedure, pass(this), private mesh::mesh_t::add_quad
private

Definition at line 121 of file mesh.f90.

◆ all_deformed()

procedure, pass(this) mesh::mesh_t::all_deformed

Definition at line 146 of file mesh.f90.

◆ apply_periodic_facet()

procedure, pass(this) mesh::mesh_t::apply_periodic_facet

Definition at line 145 of file mesh.f90.

◆ create_periodic_ids()

procedure, pass(this) mesh::mesh_t::create_periodic_ids

Definition at line 149 of file mesh.f90.

◆ finalize()

procedure, pass(this) mesh::mesh_t::finalize

Definition at line 135 of file mesh.f90.

◆ free()

procedure, pass(this) mesh::mesh_t::free

Definition at line 134 of file mesh.f90.

◆ generate_conn()

procedure, pass(this) mesh::mesh_t::generate_conn

Definition at line 150 of file mesh.f90.

◆ get_facet_ids()

procedure, pass(this) mesh::mesh_t::get_facet_ids

Definition at line 147 of file mesh.f90.

◆ get_global()

generic mesh::mesh_t::get_global

Get global id for a mesh entity.

Todo:
Add similar mappings for element ids

Definition at line 161 of file mesh.f90.

◆ get_global_edge()

procedure, pass(this), private mesh::mesh_t::get_global_edge
private

Definition at line 129 of file mesh.f90.

◆ get_global_facet()

procedure, pass(this), private mesh::mesh_t::get_global_facet
private

Definition at line 130 of file mesh.f90.

◆ get_local()

generic mesh::mesh_t::get_local

Get local id for a mesh entity.

Todo:
Add similar mappings for element ids

Definition at line 158 of file mesh.f90.

◆ get_local_edge()

procedure, pass(this), private mesh::mesh_t::get_local_edge
private

Definition at line 127 of file mesh.f90.

◆ get_local_facet()

procedure, pass(this), private mesh::mesh_t::get_local_facet
private

Definition at line 128 of file mesh.f90.

◆ get_local_point()

procedure, pass(this), private mesh::mesh_t::get_local_point
private

Definition at line 126 of file mesh.f90.

◆ have_point_glb_idx()

procedure, pass(this) mesh::mesh_t::have_point_glb_idx

Definition at line 151 of file mesh.f90.

◆ init()

generic mesh::mesh_t::init

Initialise a mesh.

Definition at line 153 of file mesh.f90.

◆ init_dist()

procedure, pass(this), private mesh::mesh_t::init_dist
private

Definition at line 120 of file mesh.f90.

◆ init_nelv()

procedure, pass(this), private mesh::mesh_t::init_nelv
private

Definition at line 119 of file mesh.f90.

◆ is_shared()

generic mesh::mesh_t::is_shared

Check if a mesh entity is shared.

Definition at line 163 of file mesh.f90.

◆ is_shared_edge()

procedure, pass(this), private mesh::mesh_t::is_shared_edge
private

Definition at line 132 of file mesh.f90.

◆ is_shared_facet()

procedure, pass(this), private mesh::mesh_t::is_shared_facet
private

Definition at line 133 of file mesh.f90.

◆ is_shared_point()

procedure, pass(this), private mesh::mesh_t::is_shared_point
private

Definition at line 131 of file mesh.f90.

◆ mark_curve_element()

procedure, pass(this) mesh::mesh_t::mark_curve_element

Definition at line 144 of file mesh.f90.

◆ mark_inlet_facet()

procedure, pass(this) mesh::mesh_t::mark_inlet_facet

Definition at line 137 of file mesh.f90.

◆ mark_labeled_facet()

procedure, pass(this) mesh::mesh_t::mark_labeled_facet

Definition at line 143 of file mesh.f90.

◆ mark_outlet_facet()

procedure, pass(this) mesh::mesh_t::mark_outlet_facet

Definition at line 138 of file mesh.f90.

◆ mark_outlet_normal_facet()

procedure, pass(this) mesh::mesh_t::mark_outlet_normal_facet

Definition at line 141 of file mesh.f90.

◆ mark_periodic_facet()

procedure, pass(this) mesh::mesh_t::mark_periodic_facet

Definition at line 140 of file mesh.f90.

◆ mark_sympln_facet()

procedure, pass(this) mesh::mesh_t::mark_sympln_facet

Definition at line 139 of file mesh.f90.

◆ mark_wall_facet()

procedure, pass(this) mesh::mesh_t::mark_wall_facet

Definition at line 136 of file mesh.f90.

◆ reset_periodic_ids()

procedure, pass(this) mesh::mesh_t::reset_periodic_ids

Definition at line 148 of file mesh.f90.

Member Data Documentation

◆ apply_deform

procedure(mesh_deform), pointer, pass mesh::mesh_t::apply_deform => null()

enables user to specify a deformation that is applied to all x,y,z coordinates generated with this mesh

Definition at line 117 of file mesh.f90.

◆ curve

type(curve_t) mesh::mesh_t::curve

Set of curved elements.

Definition at line 108 of file mesh.f90.

◆ ddata

type(distdata_t) mesh::mesh_t::ddata

Mesh distributed data.

Definition at line 95 of file mesh.f90.

◆ dfrmd_el

logical, dimension(:), allocatable mesh::mesh_t::dfrmd_el

List of elements.

Definition at line 81 of file mesh.f90.

◆ elements

type(mesh_element_t), dimension(:), allocatable mesh::mesh_t::elements

List of elements.

Definition at line 80 of file mesh.f90.

◆ facet_map

class(htable_t), allocatable mesh::mesh_t::facet_map

Facet to element's id tuple and the mapping of the points between lower id element and higher \( t=(low_id element, element with higher global id) \).

Definition at line 92 of file mesh.f90.

◆ facet_neigh

integer, dimension(:,:), allocatable mesh::mesh_t::facet_neigh

Facet to neigh. element table.

Definition at line 87 of file mesh.f90.

◆ facet_type

integer(2), dimension(:,:), allocatable mesh::mesh_t::facet_type

Facet type.

Definition at line 99 of file mesh.f90.

◆ gdim

integer mesh::mesh_t::gdim

Geometric dimension.

Definition at line 66 of file mesh.f90.

◆ glb_meds

integer mesh::mesh_t::glb_meds

Global number of unique edges.

Definition at line 74 of file mesh.f90.

◆ glb_mfcs

integer mesh::mesh_t::glb_mfcs

Global number of unique faces.

Definition at line 73 of file mesh.f90.

◆ glb_mpts

integer mesh::mesh_t::glb_mpts

Global number of unique points.

Definition at line 72 of file mesh.f90.

◆ glb_nelv

integer mesh::mesh_t::glb_nelv

Global number of elements.

Definition at line 71 of file mesh.f90.

◆ hte

type(htable_i4t2_t) mesh::mesh_t::hte

Table of unique edges (edge->local id)

Definition at line 85 of file mesh.f90.

◆ htf

type(htable_i4t4_t) mesh::mesh_t::htf

Table of unique faces (facet->local id)

Definition at line 84 of file mesh.f90.

◆ htp

type(htable_i4_t) mesh::mesh_t::htp

Table of unique points (global->local)

Definition at line 83 of file mesh.f90.

◆ inlet

type(facet_zone_t) mesh::mesh_t::inlet

Zone of inlet facets.

Definition at line 102 of file mesh.f90.

◆ labeled_zones

type(facet_zone_t), dimension(:), allocatable mesh::mesh_t::labeled_zones

Zones with labeled facets.

Definition at line 106 of file mesh.f90.

◆ lconn

logical mesh::mesh_t::lconn = .false.

valid connectivity

Definition at line 110 of file mesh.f90.

◆ ldist

logical mesh::mesh_t::ldist = .false.

valid distributed data

Definition at line 111 of file mesh.f90.

◆ lgenc

logical mesh::mesh_t::lgenc = .true.

generate connectivity

Definition at line 113 of file mesh.f90.

◆ lnumr

logical mesh::mesh_t::lnumr = .false.

valid numbering

Definition at line 112 of file mesh.f90.

◆ max_pts_id

integer mesh::mesh_t::max_pts_id

Max local point id.

Definition at line 77 of file mesh.f90.

◆ meds

integer mesh::mesh_t::meds

Number of (unique) edges in the mesh.

Definition at line 69 of file mesh.f90.

◆ mfcs

integer mesh::mesh_t::mfcs

Number of (unique) faces in the mesh.

Definition at line 68 of file mesh.f90.

◆ mpts

integer mesh::mesh_t::mpts

Number of (unique) points in the mesh.

Definition at line 67 of file mesh.f90.

◆ neigh

logical, dimension(:), allocatable mesh::mesh_t::neigh

Neighbouring ranks.

Definition at line 96 of file mesh.f90.

◆ neigh_order

integer, dimension(:), allocatable mesh::mesh_t::neigh_order

Neighbour order.

Definition at line 97 of file mesh.f90.

◆ nelv

integer mesh::mesh_t::nelv

Number of elements.

Definition at line 64 of file mesh.f90.

◆ npts

integer mesh::mesh_t::npts

Number of points per element.

Definition at line 65 of file mesh.f90.

◆ offset_el

integer mesh::mesh_t::offset_el

Element offset.

Definition at line 76 of file mesh.f90.

◆ outlet

type(facet_zone_t) mesh::mesh_t::outlet

Zone of outlet facets.

Definition at line 103 of file mesh.f90.

◆ outlet_normal

type(facet_zone_t) mesh::mesh_t::outlet_normal

Zone of outlet normal facets.

Definition at line 104 of file mesh.f90.

◆ periodic

type(facet_zone_periodic_t) mesh::mesh_t::periodic

Zones with periodic facets.

Definition at line 107 of file mesh.f90.

◆ point_neigh

type(stack_i4_t), dimension(:), allocatable mesh::mesh_t::point_neigh

Point to neigh. table.

Definition at line 93 of file mesh.f90.

◆ points

type(point_t), dimension(:), allocatable mesh::mesh_t::points

list of points

Definition at line 79 of file mesh.f90.

◆ sympln

type(facet_zone_t) mesh::mesh_t::sympln

Zone of symmetry plane facets.

Definition at line 105 of file mesh.f90.

◆ wall

type(facet_zone_t) mesh::mesh_t::wall

Zone of wall facets.

Definition at line 101 of file mesh.f90.


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