The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
hexmesh_type.F90 File Reference
#include "local.h"

Data Types

type  oft_hexmesh
 Hexahedral volume mesh type. More...

Modules

module  oft_hexmesh_type
 Hexhedral mesh definitions.

Functions/Subroutines

subroutine, public hex_3d_grid (order, xnodes, inodesp, inodese, inodesf, inodesc)
 Needs docs.
pure real(r8) function, dimension(6), public hex_get_bary (flog)
 Map from orthogonal logical coordinates to barycentric logical coordinates.
pure real(r8) function, dimension(3), public hex_get_bary_cgop (cglog, i, j)
 Map gradient cross-products from orthogonal logical coordinates to barycentric logical coordinates.
pure real(r8) function, dimension(3, 6), public hex_get_bary_gop (glog)
 Map gradients from orthogonal logical coordinates to barycentric logical coordinates.
subroutine, public hex_grid_forient (oflag, order, finds)
 Needs docs.
subroutine hex_grid_forient_inv (oflag, order, finds)
 Needs docs.
subroutine hexmesh_ctang (self, cell, ind, f, tang)
 Compute the curve tangent vector for a given edge on a cell.
subroutine hexmesh_g2inv (jac, a)
 Expand and invert the matrix for the grid Hessian.
subroutine hexmesh_get_surf_map (self, face, cell, lmap)
 Get mapping between boundary and volume logical coordinates.
subroutine hexmesh_hessian (self, cell, f, g2op, k)
 Compute the spatial hessian matrices for a given cell at a given logical position.
integer(i4) function hexmesh_in_cell (self, f, tol)
 Test if logical position lies within the base cell.
subroutine hexmesh_invert_cell (self, cell)
 Turn cell "inside out", used to ensure consistent orientations.
subroutine hexmesh_jacinv (a, c, j)
 Invert a 3x3 matrix.
subroutine hexmesh_jacobian (self, cell, f, gop, j)
 Compute the spatial jacobian matrix and its determinant for a given cell at a given logical position.
real(r8) function, dimension(3) hexmesh_log2phys (self, cell, f)
 Map from logical to physical coordinates in a given cell.
subroutine hexmesh_phys2log (self, cell, pt, f)
 Map from physical to logical coordinates in a given cell.
real(r8) function, dimension(4) hexmesh_phys2logho (self, cell, pt)
 Implementation of hexmesh_phys2log.
subroutine hexmesh_quad_rule (self, order, quad_rule)
 Retrieve suitable quadrature rule for mesh with given order.
subroutine hexmesh_set_order (self, order)
 Set maximum order of spatial mapping.
subroutine hexmesh_setup (self, cad_type)
 Setup mesh with implementation specifics (cell_np, cell_ne, etc.).
subroutine hexmesh_snormal (self, cell, ind, f, norm)
 Compute the surface normal vector for a given face on a cell.
subroutine hexmesh_surf_to_vol (self, fsurf, lmap, fvol)
 Map between surface and volume logical coordinates.
subroutine hexmesh_tessellate (self, rtmp, lctmp, order)
 Tessellate mesh onto lagrange FE nodes of specified order (usually for plotting).
integer(i4) function, dimension(2) hexmesh_tessellated_sizes (self)
 Get sizes of arrays returned by tetmesh_tessellate.
subroutine hexmesh_vlog (self, i, f)
 Get position in logical space of vertex i.
subroutine tm_findcell_error (m, n, uv, err, iflag)
 Evalute the error between a logical point and the current active point.

Variables

integer(i4), private active_cell = 0
 Active cell for high order find_cell.
class(oft_hexmesh), pointer, private active_mesh => NULL()
 Active mesh for high order find_cell.
real(r8), dimension(3), private active_pt = 0.d0
 Active point for high order find_cell.
integer(i4), dimension(2, 12), parameter, public hex_bary_ecoords = RESHAPE((/ 5,3, 2,4, 3,5, 4,2, 1,6, 1,6, 1,6, 1,6, 5,3, 2,4, 3,5, 4,2/), (/2,12/))
integer(i4), dimension(2, 12), parameter, public hex_bary_efcoords = RESHAPE((/ 1,2, 1,3, 1,4, 1,5, 2,5, 2,3, 3,4, 4,5, 2,6, 3,6, 4,6, 5,6/), (/2,12/))
integer(i4), dimension(4, 6), parameter, public hex_bary_fcoords = RESHAPE((/ 5,2,3,4, 1,5,6,3, 1,2,6,4, 1,3,6,5, 2,1,4,6, 2,5,4,3/), (/4,6/))
integer(i4), dimension(6), parameter hex_bary_map = (/-3,-2,1, 2,-1,3/)
integer(i4), dimension(3, 8), parameter, public hex_bary_pfcoords = RESHAPE((/ 1,2,5, 1,2,3, 1,3,4, 1,4,5, 2,5,6, 2,3,6, 3,4,6, 4,5,6/), (/3,8/))
integer(i4), dimension(2, 12), parameter hex_ed =RESHAPE((/ 1,2, 2,3, 3,4, 4,1, 1,5, 2,6, 3,7, 4,8, 5,6, 6,7, 7,8, 8,5/), (/2,12/))
integer(i4), dimension(4, 6), parameter hex_fc =RESHAPE((/ 1,2,3,4, 1,5,6,2, 2,6,7,3, 3,7,8,4, 1,4,8,5, 5,8,7,6/), (/4,6/))
integer(i4), dimension(4, 6), parameter hex_fe =RESHAPE((/ 1,2,3,4, 5,9,-6,-1, 6,10,-7,-2, 7,11,-8,-3, -4,8,12,-5, -12,-11,-10,-9/), (/4,6/))
real(r8), parameter, private ho_find_du =1.d-6
 Step size used for jacobian eval during high order find_cell.
integer(i4), parameter, private ho_find_nsteps =100
 Maximum number of steps during high order find_cell.
real(r8), parameter, private ho_find_tol =1.d-6
 Convergence tolerance for high order find_cell.
integer(i4), dimension(3, 8), parameter inodes1p = RESHAPE((/ 1,1,1, 2,1,1, 2,2,1, 1,2,1, 1,1,2, 2,1,2, 2,2,2, 1,2,2/), (/3,8/))
integer(i4), dimension(3, 12), parameter inodes2e = RESHAPE((/ 2,1,1, 3,2,1, 2,3,1, 1,2,1, 1,1,2, 3,1,2, 3,3,2, 1,3,2, 2,1,3, 3,2,3, 2,3,3, 1,2,3/), (/3,12/))
integer(i4), dimension(3, 6), parameter inodes2f = RESHAPE((/ 2,2,1, 2,1,2, 3,2,2, 2,3,2, 1,2,2, 2,2,3/), (/3,6/))
integer(i4), dimension(3, 8), parameter inodes2p = RESHAPE((/ 1,1,1, 3,1,1, 3,3,1, 1,3,1, 1,1,3, 3,1,3, 3,3,3, 1,3,3/), (/3,8/))
integer(i4), dimension(3, 8), parameter inodesp_base = RESHAPE((/ 0,0,0, 1,0,0, 1,1,0, 0,1,0, 0,0,1, 1,0,1, 1,1,1, 0,1,1/), (/3,8/))
integer(i4), dimension(2, 4), parameter quad_ed =RESHAPE((/1,2, 2,3, 3,4, 4,1/), (/2,4/))
 Quad edge list.