The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
oft_mesh_type Module Reference

Detailed Description

Tetrahedral mesh structure definitions.

Global Tet variables

Author
Chris Hansen
Date
June 2010

Data Types

interface  bmesh_get_io_sizes
 Get variable sizes following tessellation. More...
 
interface  bmesh_hessian
 Needs docs. More...
 
interface  bmesh_in_cell
 Needs docs. More...
 
interface  bmesh_invert_face
 Needs docs. More...
 
interface  bmesh_jacobian
 Needs docs. More...
 
interface  bmesh_load
 Needs docs. More...
 
interface  bmesh_log2phys
 Needs docs. More...
 
interface  bmesh_norm
 Get unit normal for surface at a given point. More...
 
type  bmesh_parent
 Global mesh information and indicies. More...
 
interface  bmesh_phys2log
 Needs docs. More...
 
interface  bmesh_quad_rule
 Get quadrature rule for a given order in logical coordinates. More...
 
interface  bmesh_save
 Needs docs. More...
 
interface  bmesh_set_order
 Needs docs. More...
 
interface  bmesh_setup
 Needs docs. More...
 
interface  bmesh_tang
 Get tangent basis set for surface at a given point. More...
 
interface  bmesh_tessellate
 Tessellate grid onto Lagrange node points for a given order. More...
 
interface  bmesh_vlog
 Needs docs. More...
 
type  ho_mesh
 High order tet geometry information. More...
 
type  mesh_base
 Base mesh information and indicies. More...
 
interface  mesh_ctang
 
interface  mesh_get_io_sizes
 Get variable sizes following tessellation. More...
 
interface  mesh_get_surf_map
 Get mapping between boundary and volume logical coordinates. More...
 
type  mesh_global
 Global mesh information and indicies. More...
 
interface  mesh_hessian
 
interface  mesh_in_cell
 
interface  mesh_invert_cell
 
interface  mesh_jacobian
 
interface  mesh_log2phys
 
type  mesh_per
 Global mesh information and indicies. More...
 
interface  mesh_phys2log
 
interface  mesh_quad_rule
 
type  mesh_save_index
 MPI global index information (For I/O Only) More...
 
interface  mesh_set_order
 
interface  mesh_setup
 
interface  mesh_snormal
 
interface  mesh_surf_to_vol
 Map between surface and volume logical coordinates. More...
 
interface  mesh_tessellate
 
interface  mesh_vlog
 
type  oft_amesh
 Abstrac mesh type (surface or volume) More...
 
type  oft_bmesh
 Surface mesh type. More...
 
type  oft_mesh
 Tetrahedral Mesh type. More...
 

Functions/Subroutines

subroutine amesh_destroy (self)
 Destroy mesh object.
 
real(r8) function bmesh_area (self)
 Estimate mesh area.
 
subroutine bmesh_destroy (self)
 Destroy surface mesh object.
 
subroutine, public bmesh_findcell (self, cell, pt, fout)
 Find physical point in mesh.
 
subroutine bmesh_save_cell_scalar (self, p, path)
 Write scalar cell data out to file.
 
subroutine bmesh_save_cell_vector (self, bcc, path)
 Write vector cell data out to file.
 
subroutine bmesh_save_vertex_scalar (self, p, path)
 Write scalar vertex data out to file.
 
subroutine bmesh_save_vertex_vector (self, bv, path)
 Write vector vertex data out to file.
 
subroutine bmesh_setup_io (self, tess_order, append_files, basepath)
 Destroy trimesh object.
 
logical function, public cell_is_curved (self, cell)
 Checks if a global mesh cell is curved or not.
 
subroutine mesh_destroy (self)
 Destroy mesh object.
 
subroutine, public mesh_findcell (self, cell, pt, fout)
 Find physical point in mesh.
 
subroutine, public mesh_findcell2 (self, cell, pt, nclosest, fout)
 Find physical point in mesh using robust method.
 
subroutine mesh_save_cell_scalar (self, p, path)
 Write scalar cell data out to file.
 
subroutine mesh_save_cell_vector (self, bcc, path)
 Write vector cell data out to file.
 
subroutine mesh_save_vertex_scalar (self, p, path)
 Write scalar vertex data out to file.
 
subroutine mesh_save_vertex_vector (self, bv, path)
 Write vector vertex data out to file.
 
subroutine mesh_setup_io (self, tess_order, basepath)
 Estimate mesh volume.
 
real(r8) function mesh_volume (self)
 Estimate mesh volume.
 

Variables

integer(i4), parameter, private ho_find_retry =20
 Number of retry attempts during high order find_cell.
 
class(oft_mesh), pointer, public mesh => NULL()
 
logical, parameter plot_r4_flag =.TRUE.
 
real(r8), dimension(3), public rgrnd =(/1.d0,0.d0,0.d0/)
 Grounding point position.
 
class(oft_bmesh), pointer, public smesh => NULL()
 

Function/Subroutine Documentation

◆ amesh_destroy()

subroutine amesh_destroy ( class(oft_amesh), intent(inout)  self)
private

Destroy mesh object.

Note
Should only be used via class tri_mesh or children

◆ bmesh_area()

real(r8) function bmesh_area ( class(oft_bmesh), intent(in)  self)
private

Estimate mesh area.

◆ bmesh_destroy()

subroutine bmesh_destroy ( class(oft_bmesh), intent(inout)  self)
private

Destroy surface mesh object.

Note
Should only be used via class tri_mesh or children

◆ bmesh_findcell()

subroutine, public bmesh_findcell ( class(oft_bmesh), intent(in)  self,
integer(i4), intent(inout)  cell,
real(r8), dimension(2), intent(in)  pt,
real(r8), dimension(3), intent(out), optional  fout 
)

Find physical point in mesh.

Warning
Only works for 2D meshes and uses linear logical mapping
Parameters
[in]selfMesh to search
[in,out]cellCell containing point on output, guess on input
[in]ptCoordinates to locate [2]
[out]foutLogical coordinates of point in cell (optional)

◆ bmesh_save_cell_scalar()

subroutine bmesh_save_cell_scalar ( class(oft_bmesh), intent(in)  self,
real(r8), dimension(:), intent(in)  p,
character(len=*), intent(in)  path 
)
private

Write scalar cell data out to file.

Parameters
[in]pCell data
[in]tagName of the output field

◆ bmesh_save_cell_vector()

subroutine bmesh_save_cell_vector ( class(oft_bmesh), intent(in)  self,
real(r8), dimension(:,:), intent(in)  bcc,
character(len=*), intent(in)  path 
)
private

Write vector cell data out to file.

Parameters
[in]bccCell data
[in]tagName of the output field

◆ bmesh_save_vertex_scalar()

subroutine bmesh_save_vertex_scalar ( class(oft_bmesh), intent(in)  self,
real(r8), dimension(:), intent(in)  p,
character(len=*), intent(in)  path 
)
private

Write scalar vertex data out to file.

Parameters
[in]pVertex data
[in]tagName of the output field

◆ bmesh_save_vertex_vector()

subroutine bmesh_save_vertex_vector ( class(oft_bmesh), intent(in)  self,
real(r8), dimension(:,:), intent(in)  bv,
character(len=*), intent(in)  path 
)
private

Write vector vertex data out to file.

Parameters
[in]bvVertex data
[in]tagName of the output field

◆ bmesh_setup_io()

subroutine bmesh_setup_io ( class(oft_bmesh), intent(inout)  self,
integer(i4), intent(in)  tess_order,
logical, intent(in), optional  append_files,
character(len=*), intent(in), optional  basepath 
)
private

Destroy trimesh object.

Note
Should only be used via class tri_mesh or children

◆ cell_is_curved()

logical function, public cell_is_curved ( class(oft_amesh), intent(in)  self,
integer(i4), intent(in)  cell 
)

Checks if a global mesh cell is curved or not.

Parameters
[in]selfMesh containing cell
[in]cellIndex of cell to check
Returns
(T/F) cell is curved?

◆ mesh_destroy()

subroutine mesh_destroy ( class(oft_mesh), intent(inout)  self)
private

Destroy mesh object.

Note
Should only be used via class tri_mesh or children

◆ mesh_findcell()

subroutine, public mesh_findcell ( class(oft_mesh), intent(inout), target  self,
integer(i4), intent(inout)  cell,
real(r8), dimension(3), intent(in)  pt,
real(r8), dimension(4), intent(out), optional  fout 
)

Find physical point in mesh.

For high order grids an approximate guess is first computed using only the linear portion of the mesh representation. This guess is then refined using the full mesh representation and the tetmesh_phys2logho subroutine. The maximum number of cell searches during this non-linear phase is controlled by the module variable ho_find_retry. For more information see the documentation for tetmesh_phys2logho

Parameters
[in]selfMesh to search
[in,out]cellCell containing point on output, guess on input
[in]ptCoordinates to locate [3]
[out]foutLogical coordinates of point in cell (optional)

◆ mesh_findcell2()

subroutine, public mesh_findcell2 ( class(oft_mesh), intent(inout), target  self,
integer(i4), intent(inout)  cell,
real(r8), dimension(3), intent(in)  pt,
integer(i4), intent(in)  nclosest,
real(r8), dimension(4), intent(out), optional  fout 
)

Find physical point in mesh using robust method.

First, a collection of the nclosest mesh vertices is found. Then the surrounding cells are searched for the specified point. If the point is not found the standard tetmesh_findcell subroutine is used as a fallback.

Parameters
[in]selfMesh to search
[in,out]cellCell containing point on output, guess on input
[in]ptCoordinates to locate [3]
[in]nclosestNumber of candidate vertices to use for search
[out]foutLogical coordinates of point in cell (optional)

◆ mesh_save_cell_scalar()

subroutine mesh_save_cell_scalar ( class(oft_mesh), intent(in)  self,
real(r8), dimension(:), intent(in)  p,
character(len=*), intent(in)  path 
)
private

Write scalar cell data out to file.

Parameters
[in]pCell data
[in]tagName of the output field

◆ mesh_save_cell_vector()

subroutine mesh_save_cell_vector ( class(oft_mesh), intent(in)  self,
real(r8), dimension(:,:), intent(in)  bcc,
character(len=*), intent(in)  path 
)
private

Write vector cell data out to file.

Parameters
[in]bccCell data
[in]tagName of the output field

◆ mesh_save_vertex_scalar()

subroutine mesh_save_vertex_scalar ( class(oft_mesh), intent(in)  self,
real(r8), dimension(:), intent(in)  p,
character(len=*), intent(in)  path 
)
private

Write scalar vertex data out to file.

Parameters
[in]pVertex data
[in]tagName of the output field

◆ mesh_save_vertex_vector()

subroutine mesh_save_vertex_vector ( class(oft_mesh), intent(in)  self,
real(r8), dimension(:,:), intent(in)  bv,
character(len=*), intent(in)  path 
)
private

Write vector vertex data out to file.

Parameters
[in]bvVertex data
[in]tagName of the output field

◆ mesh_setup_io()

subroutine mesh_setup_io ( class(oft_mesh), intent(inout)  self,
integer(i4), intent(in)  tess_order,
character(len=*), intent(in), optional  basepath 
)
private

Estimate mesh volume.

◆ mesh_volume()

real(r8) function mesh_volume ( class(oft_mesh), intent(in)  self)
private

Estimate mesh volume.

Variable Documentation

◆ ho_find_retry

integer(i4), parameter, private ho_find_retry =20
private

Number of retry attempts during high order find_cell.

◆ mesh

class(oft_mesh), pointer, public mesh => NULL()

◆ plot_r4_flag

logical, parameter plot_r4_flag =.TRUE.
private

◆ rgrnd

real(r8), dimension(3), public rgrnd =(/1.d0,0.d0,0.d0/)

Grounding point position.

◆ smesh

class(oft_bmesh), pointer, public smesh => NULL()