Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
mesh::mesh_t Type Reference
Collaboration diagram for mesh::mesh_t:

Public Member Functions

procedure, pass(thisfree (this)
 Deallocate a mesh this.
 
procedure, pass(thisfinalize (this)
 
procedure, pass(thismark_wall_facet (this, f, e)
 Mark facet f in element e as a wall.
 
procedure, pass(thismark_inlet_facet (this, f, e)
 Mark facet f in element e as an inlet.
 
procedure, pass(thismark_outlet_facet (this, f, e)
 Mark facet f in element e as an outlet.
 
procedure, pass(thismark_sympln_facet (this, f, e)
 Mark facet f in element e as a symmetry plane.
 
procedure, pass(thismark_periodic_facet (this, f, e, pf, pe, pids)
 Mark facet f in element e as periodic with (pf, pe)
 
procedure, pass(thismark_outlet_normal_facet (this, f, e)
 Mark facet f in element e as an outlet normal.
 
procedure, pass(thismark_labeled_facet (this, f, e, label)
 Mark facet f in element e with label.
 
procedure, pass(thismark_curve_element (this, e, curve_data, curve_type)
 Mark element e as a curve element.
 
procedure, pass(thisapply_periodic_facet (this, f, e, pf, pe, pids)
 Replaces the periodic point's id with a common id for matching periodic points.
 
procedure, pass(thisall_deformed (this)
 Set all elements as if they are deformed.
 
procedure, pass(thisget_facet_ids (this, f, e, pids)
 Get original ids of periodic points.
 
procedure, pass(thisreset_periodic_ids (this)
 Reset ids of periodic points to their original ids.
 
procedure, pass(thiscreate_periodic_ids (this, f, e, pf, pe)
 Creates common ids for matching periodic points.
 
procedure, pass(thisgenerate_conn (this)
 Generate element-to-element connectivity.
 
procedure, pass(thishave_point_glb_idx (this, index)
 Check if the mesh has a point given its global index.
 
generic init (this, gdim, nelv)
 Initialise a mesh.
 
generic init (this, gdim, dist)
 Initialise a mesh.
 
generic add_element (this, el, p1, p2, p3, p4)
 Add an element to the mesh.
 
generic add_element (this, el, p1, p2, p3, p4, p5, p6, p7, p8)
 Add an element to the mesh.
 
generic get_local (this, p)
 Get local id for a mesh entity.
 
generic get_local (this, e)
 Get local id for a mesh entity.
 
generic get_local (this, f)
 Get local id for a mesh entity.
 
generic get_global (this, e)
 Get global id for a mesh entity.
 
generic get_global (this, f)
 Get global id for a mesh entity.
 
generic is_shared (this, p)
 Check if a mesh entity is shared.
 
generic is_shared (this, e)
 Check if a mesh entity is shared.
 
generic is_shared (this, f)
 Check if a mesh entity is shared.
 

Public Attributes

integer nelv
 Number of elements.
 
integer npts
 Number of points per element.
 
integer gdim
 Geometric dimension.
 
integer mpts
 Number of (unique) points in the mesh.
 
integer mfcs
 Number of (unique) faces in the mesh.
 
integer meds
 Number of (unique) edges in the mesh.
 
integer glb_nelv
 Global number of elements.
 
integer glb_mpts
 Global number of unique points.
 
integer glb_mfcs
 Global number of unique faces.
 
integer glb_meds
 Global number of unique edges.
 
integer offset_el
 Element offset.
 
integer max_pts_id
 Max local point id.
 
type(point_t), dimension(:), allocatable points
 list of points
 
type(mesh_element_t), dimension(:), allocatable elements
 List of elements.
 
logical, dimension(:), allocatable dfrmd_el
 List of elements.
 
type(htable_i4_thtp
 Table of unique points (global->local)
 
type(htable_i4t4_thtf
 Table of unique faces (facet->local id)
 
type(htable_i4t2_thte
 Table of unique edges (edge->local id)
 
integer, dimension(:,:), allocatable facet_neigh
 Facet to neigh. element table.
 
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) \).
 
type(stack_i4_t), dimension(:), allocatable point_neigh
 Point to neigh. table.
 
type(distdata_tddata
 Mesh distributed data.
 
logical, dimension(:), allocatable neigh
 Neighbouring ranks.
 
integer, dimension(:), allocatable neigh_order
 Neighbour order.
 
integer(2), dimension(:,:), allocatable facet_type
 Facet type.
 
type(facet_zone_twall
 Zone of wall facets.
 
type(facet_zone_tinlet
 Zone of inlet facets.
 
type(facet_zone_toutlet
 Zone of outlet facets.
 
type(facet_zone_toutlet_normal
 Zone of outlet normal facets.
 
type(facet_zone_tsympln
 Zone of symmetry plane facets.
 
type(facet_zone_t), dimension(:), allocatable labeled_zones
 Zones with labeled facets.
 
type(facet_zone_periodic_tperiodic
 Zones with periodic facets.
 
type(curve_tcurve
 Set of curved elements.
 
logical lconn = .false.
 valid connectivity
 
logical ldist = .false.
 valid distributed data
 
logical lnumr = .false.
 valid numbering
 
logical lgenc = .true.
 generate connectivity
 
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
 

Private Member Functions

procedure, pass(this), private init_nelv (this, gdim, nelv)
 Initialise a mesh this with nelv elements.
 
procedure, pass(this), private init_dist (this, gdim, dist)
 Initialise a mesh this based on a distribution dist.
 
procedure, pass(this), private add_quad (this, el, p1, p2, p3, p4)
 Add a quadrilateral element to the mesh this.
 
procedure, pass(this), private add_hex (this, el, p1, p2, p3, p4, p5, p6, p7, p8)
 Add a hexahedral element to the mesh this.
 
procedure, pass(this), private add_edge (this, e)
 Add a unique edge represented as a 2-tuple to the mesh.
 
procedure, pass(this), private add_face (this, f)
 Add a unique face represented as a 4-tuple to the mesh.
 
procedure, pass(this), private add_point (this, p, idx)
 Add a unique point to the mesh.
 
procedure, pass(this), private get_local_point (this, p)
 Return the local id of a point p.
 
procedure, pass(this), private get_local_edge (this, e)
 Return the local id of an edge e.
 
procedure, pass(this), private get_local_facet (this, f)
 Return the local id of a face f.
 
procedure, pass(this), private get_global_edge (this, e)
 Return the global id of an edge e.
 
procedure, pass(this), private get_global_facet (this, f)
 Return the local id of a face f.
 
procedure, pass(this), private is_shared_point (this, p)
 Check if a point is shared.
 
procedure, pass(this), private is_shared_edge (this, e)
 Check if an edge is shared.
 
procedure, pass(this), private is_shared_facet (this, f)
 Check if a facet is shared.
 

Detailed Description

Definition at line 64 of file mesh.f90.

Member Function/Subroutine Documentation

◆ add_edge()

procedure, pass(this), private mesh::mesh_t::add_edge ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
private

Definition at line 124 of file mesh.f90.

◆ add_element() [1/2]

generic mesh::mesh_t::add_element ( class(mesh_t), intent(inout), target  this,
integer, value  el,
type(point_t), intent(inout), target  p1,
type(point_t), intent(inout), target  p2,
type(point_t), intent(inout), target  p3,
type(point_t), intent(inout), target  p4 
)

Definition at line 156 of file mesh.f90.

◆ add_element() [2/2]

generic mesh::mesh_t::add_element ( class(mesh_t), intent(inout), target  this,
integer, value  el,
type(point_t), intent(inout), target  p1,
type(point_t), intent(inout), target  p2,
type(point_t), intent(inout), target  p3,
type(point_t), intent(inout), target  p4,
type(point_t), intent(inout), target  p5,
type(point_t), intent(inout), target  p6,
type(point_t), intent(inout), target  p7,
type(point_t), intent(inout), target  p8 
)

Definition at line 156 of file mesh.f90.

◆ add_face()

procedure, pass(this), private mesh::mesh_t::add_face ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
private

Definition at line 125 of file mesh.f90.

◆ add_hex()

procedure, pass(this), private mesh::mesh_t::add_hex ( class(mesh_t), intent(inout), target  this,
integer, value  el,
type(point_t), intent(inout), target  p1,
type(point_t), intent(inout), target  p2,
type(point_t), intent(inout), target  p3,
type(point_t), intent(inout), target  p4,
type(point_t), intent(inout), target  p5,
type(point_t), intent(inout), target  p6,
type(point_t), intent(inout), target  p7,
type(point_t), intent(inout), target  p8 
)
private

Definition at line 123 of file mesh.f90.

◆ add_point()

procedure, pass(this), private mesh::mesh_t::add_point ( class(mesh_t), intent(inout this,
type(point_t), intent(inout p,
integer, intent(inout idx 
)
private

Definition at line 126 of file mesh.f90.

◆ add_quad()

procedure, pass(this), private mesh::mesh_t::add_quad ( class(mesh_t), intent(inout), target  this,
integer, value  el,
type(point_t), intent(inout), target  p1,
type(point_t), intent(inout), target  p2,
type(point_t), intent(inout), target  p3,
type(point_t), intent(inout), target  p4 
)
private

Definition at line 122 of file mesh.f90.

◆ all_deformed()

procedure, pass(this) mesh::mesh_t::all_deformed ( class(mesh_t), intent(inout this)

Definition at line 147 of file mesh.f90.

◆ apply_periodic_facet()

procedure, pass(this) mesh::mesh_t::apply_periodic_facet ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e,
integer, intent(in pf,
integer, intent(in pe,
integer, dimension(4), intent(inout pids 
)

Definition at line 146 of file mesh.f90.

◆ create_periodic_ids()

procedure, pass(this) mesh::mesh_t::create_periodic_ids ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e,
integer, intent(in pf,
integer, intent(in pe 
)

Definition at line 150 of file mesh.f90.

◆ finalize()

procedure, pass(this) mesh::mesh_t::finalize ( class(mesh_t), intent(inout), target  this)

Definition at line 136 of file mesh.f90.

◆ free()

procedure, pass(this) mesh::mesh_t::free ( class(mesh_t), intent(inout this)

Definition at line 135 of file mesh.f90.

◆ generate_conn()

procedure, pass(this) mesh::mesh_t::generate_conn ( class(mesh_t), intent(inout), target  this)

Definition at line 151 of file mesh.f90.

◆ get_facet_ids()

procedure, pass(this) mesh::mesh_t::get_facet_ids ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e,
integer, dimension(4), intent(inout pids 
)

Definition at line 148 of file mesh.f90.

◆ get_global() [1/2]

generic mesh::mesh_t::get_global ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
Todo:
Add similar mappings for element ids

Definition at line 162 of file mesh.f90.

◆ get_global() [2/2]

generic mesh::mesh_t::get_global ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
Todo:
Add similar mappings for element ids

Definition at line 162 of file mesh.f90.

◆ get_global_edge()

procedure, pass(this), private mesh::mesh_t::get_global_edge ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
private

Definition at line 130 of file mesh.f90.

◆ get_global_facet()

procedure, pass(this), private mesh::mesh_t::get_global_facet ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
private

Definition at line 131 of file mesh.f90.

◆ get_local() [1/3]

generic mesh::mesh_t::get_local ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
Todo:
Add similar mappings for element ids

Definition at line 159 of file mesh.f90.

◆ get_local() [2/3]

generic mesh::mesh_t::get_local ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
Todo:
Add similar mappings for element ids

Definition at line 159 of file mesh.f90.

◆ get_local() [3/3]

generic mesh::mesh_t::get_local ( class(mesh_t), intent(inout this,
type(point_t), intent(inout p 
)
Todo:
Add similar mappings for element ids

Definition at line 159 of file mesh.f90.

◆ get_local_edge()

procedure, pass(this), private mesh::mesh_t::get_local_edge ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
private
Attention
only defined for gdim .ne. 2

Definition at line 128 of file mesh.f90.

◆ get_local_facet()

procedure, pass(this), private mesh::mesh_t::get_local_facet ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
private

Definition at line 129 of file mesh.f90.

◆ get_local_point()

procedure, pass(this), private mesh::mesh_t::get_local_point ( class(mesh_t), intent(inout this,
type(point_t), intent(inout p 
)
private

Definition at line 127 of file mesh.f90.

◆ have_point_glb_idx()

procedure, pass(this) mesh::mesh_t::have_point_glb_idx ( class(mesh_t), intent(inout this,
integer, intent(inout index 
)
Returns
The local id of the point (if present) otherwise -1
Todo:
Consider moving this to distdata
Parameters
[in,out]indexGlobal index

Definition at line 152 of file mesh.f90.

◆ init() [1/2]

generic mesh::mesh_t::init ( class(mesh_t), intent(inout this,
integer, intent(in gdim,
type(linear_dist_t), intent(in dist 
)
Parameters
[in,out]thisMesh
[in]gdimGeometric dimension
[in]distData distribution

Definition at line 154 of file mesh.f90.

◆ init() [2/2]

generic mesh::mesh_t::init ( class(mesh_t), intent(inout this,
integer, intent(in gdim,
integer, intent(in nelv 
)
Parameters
[in,out]thisMesh
[in]gdimGeometric dimension
[in]nelvLocal number of elements

Definition at line 154 of file mesh.f90.

◆ init_dist()

procedure, pass(this), private mesh::mesh_t::init_dist ( class(mesh_t), intent(inout this,
integer, intent(in gdim,
type(linear_dist_t), intent(in dist 
)
private
Parameters
[in,out]thisMesh
[in]gdimGeometric dimension
[in]distData distribution

Definition at line 121 of file mesh.f90.

◆ init_nelv()

procedure, pass(this), private mesh::mesh_t::init_nelv ( class(mesh_t), intent(inout this,
integer, intent(in gdim,
integer, intent(in nelv 
)
private
Parameters
[in,out]thisMesh
[in]gdimGeometric dimension
[in]nelvLocal number of elements

Definition at line 120 of file mesh.f90.

◆ is_shared() [1/3]

generic mesh::mesh_t::is_shared ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
Attention
only defined for gdim .ne. 2

Definition at line 164 of file mesh.f90.

◆ is_shared() [2/3]

generic mesh::mesh_t::is_shared ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)

Definition at line 164 of file mesh.f90.

◆ is_shared() [3/3]

generic mesh::mesh_t::is_shared ( class(mesh_t), intent(inout this,
type(point_t), intent(inout p 
)

Definition at line 164 of file mesh.f90.

◆ is_shared_edge()

procedure, pass(this), private mesh::mesh_t::is_shared_edge ( class(mesh_t), intent(inout this,
type(tuple_i4_t), intent(inout e 
)
private
Attention
only defined for gdim .ne. 2

Definition at line 133 of file mesh.f90.

◆ is_shared_facet()

procedure, pass(this), private mesh::mesh_t::is_shared_facet ( class(mesh_t), intent(inout this,
type(tuple4_i4_t), intent(inout f 
)
private

Definition at line 134 of file mesh.f90.

◆ is_shared_point()

procedure, pass(this), private mesh::mesh_t::is_shared_point ( class(mesh_t), intent(inout this,
type(point_t), intent(inout p 
)
private

Definition at line 132 of file mesh.f90.

◆ mark_curve_element()

procedure, pass(this) mesh::mesh_t::mark_curve_element ( class(mesh_t), intent(inout this,
integer, intent(in e,
real(kind=dp), dimension(5,12), intent(in curve_data,
integer, dimension(12), intent(in curve_type 
)

Definition at line 145 of file mesh.f90.

◆ mark_inlet_facet()

procedure, pass(this) mesh::mesh_t::mark_inlet_facet ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e 
)

Definition at line 138 of file mesh.f90.

◆ mark_labeled_facet()

procedure, pass(this) mesh::mesh_t::mark_labeled_facet ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e,
integer, intent(in label 
)

Definition at line 144 of file mesh.f90.

◆ mark_outlet_facet()

procedure, pass(this) mesh::mesh_t::mark_outlet_facet ( class(mesh_t), intent(inout this,
integer, intent(inout f,
integer, intent(inout e 
)

Definition at line 139 of file mesh.f90.

◆ mark_outlet_normal_facet()

procedure, pass(this) mesh::mesh_t::mark_outlet_normal_facet ( class(mesh_t), intent(inout this,
integer, intent(inout f,
integer, intent(inout e 
)

Definition at line 142 of file mesh.f90.

◆ mark_periodic_facet()

procedure, pass(this) mesh::mesh_t::mark_periodic_facet ( class(mesh_t), intent(inout this,
integer, intent(in f,
integer, intent(in e,
integer, intent(in pf,
integer, intent(in pe,
integer, dimension(4), intent(inout pids 
)

Definition at line 141 of file mesh.f90.

◆ mark_sympln_facet()

procedure, pass(this) mesh::mesh_t::mark_sympln_facet ( class(mesh_t), intent(inout this,
integer, intent(inout f,
integer, intent(inout e 
)

Definition at line 140 of file mesh.f90.

◆ mark_wall_facet()

procedure, pass(this) mesh::mesh_t::mark_wall_facet ( class(mesh_t), intent(inout this,
integer, intent(inout f,
integer, intent(inout e 
)

Definition at line 137 of file mesh.f90.

◆ reset_periodic_ids()

procedure, pass(this) mesh::mesh_t::reset_periodic_ids ( class(mesh_t), intent(inout this)

Definition at line 149 of file mesh.f90.

Member Data Documentation

◆ apply_deform

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

Definition at line 118 of file mesh.f90.

◆ curve

type(curve_t) mesh::mesh_t::curve

Definition at line 109 of file mesh.f90.

◆ ddata

type(distdata_t) mesh::mesh_t::ddata

Definition at line 96 of file mesh.f90.

◆ dfrmd_el

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

Definition at line 82 of file mesh.f90.

◆ elements

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

Definition at line 81 of file mesh.f90.

◆ facet_map

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

Definition at line 93 of file mesh.f90.

◆ facet_neigh

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

Definition at line 88 of file mesh.f90.

◆ facet_type

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

Definition at line 100 of file mesh.f90.

◆ gdim

integer mesh::mesh_t::gdim

Definition at line 67 of file mesh.f90.

◆ glb_meds

integer mesh::mesh_t::glb_meds

Definition at line 75 of file mesh.f90.

◆ glb_mfcs

integer mesh::mesh_t::glb_mfcs

Definition at line 74 of file mesh.f90.

◆ glb_mpts

integer mesh::mesh_t::glb_mpts

Definition at line 73 of file mesh.f90.

◆ glb_nelv

integer mesh::mesh_t::glb_nelv

Definition at line 72 of file mesh.f90.

◆ hte

type(htable_i4t2_t) mesh::mesh_t::hte

Definition at line 86 of file mesh.f90.

◆ htf

type(htable_i4t4_t) mesh::mesh_t::htf

Definition at line 85 of file mesh.f90.

◆ htp

type(htable_i4_t) mesh::mesh_t::htp

Definition at line 84 of file mesh.f90.

◆ inlet

type(facet_zone_t) mesh::mesh_t::inlet

Definition at line 103 of file mesh.f90.

◆ labeled_zones

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

Definition at line 107 of file mesh.f90.

◆ lconn

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

Definition at line 111 of file mesh.f90.

◆ ldist

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

Definition at line 112 of file mesh.f90.

◆ lgenc

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

Definition at line 114 of file mesh.f90.

◆ lnumr

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

Definition at line 113 of file mesh.f90.

◆ max_pts_id

integer mesh::mesh_t::max_pts_id

Definition at line 78 of file mesh.f90.

◆ meds

integer mesh::mesh_t::meds

Definition at line 70 of file mesh.f90.

◆ mfcs

integer mesh::mesh_t::mfcs

Definition at line 69 of file mesh.f90.

◆ mpts

integer mesh::mesh_t::mpts

Definition at line 68 of file mesh.f90.

◆ neigh

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

Definition at line 97 of file mesh.f90.

◆ neigh_order

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

Definition at line 98 of file mesh.f90.

◆ nelv

integer mesh::mesh_t::nelv

Definition at line 65 of file mesh.f90.

◆ npts

integer mesh::mesh_t::npts

Definition at line 66 of file mesh.f90.

◆ offset_el

integer mesh::mesh_t::offset_el

Definition at line 77 of file mesh.f90.

◆ outlet

type(facet_zone_t) mesh::mesh_t::outlet

Definition at line 104 of file mesh.f90.

◆ outlet_normal

type(facet_zone_t) mesh::mesh_t::outlet_normal

Definition at line 105 of file mesh.f90.

◆ periodic

type(facet_zone_periodic_t) mesh::mesh_t::periodic

Definition at line 108 of file mesh.f90.

◆ point_neigh

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

Definition at line 94 of file mesh.f90.

◆ points

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

Definition at line 80 of file mesh.f90.

◆ sympln

type(facet_zone_t) mesh::mesh_t::sympln

Definition at line 106 of file mesh.f90.

◆ wall

type(facet_zone_t) mesh::mesh_t::wall

Definition at line 102 of file mesh.f90.


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