Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
sierra::nalu::ElementDescription Struct Reference

#include <ElementDescription.h>

Inheritance diagram for sierra::nalu::ElementDescription:
sierra::nalu::HexNElementDescription sierra::nalu::QuadNElementDescription

Public Types

using AddedConnectivityOrdinalMap = std::map< ordinal_type, std::vector< ordinal_type >>
 We implement the high order method using the "super topology" concept in STK. More...
 
using AddedNodeLocationsMap = std::map< ordinal_type, std::vector< double >>
 
using SubElementConnectivity = std::vector< std::vector< ordinal_type >>
 

Public Member Functions

virtual ~ElementDescription ()
 
ordinal_type node_map (ordinal_type i, ordinal_type j) const
 
ordinal_type node_map (ordinal_type i, ordinal_type j, ordinal_type k) const
 
ordinal_type node_map_bc (ordinal_type j) const
 
ordinal_type node_map_bc (ordinal_type i, ordinal_type j) const
 
const ordinal_typeside_node_ordinals (ordinal_type sideOrdinal) const
 

Static Public Member Functions

static std::unique_ptr< ElementDescriptioncreate (int dimension, int order)
 
static std::unique_ptr< ElementDescriptioncreate (int dimension, stk::topology topo)
 

Public Attributes

std::vector< double > nodeLocs1D
 
stk::topology baseTopo
 
int polyOrder
 
int dimension
 
int nodes1D
 
int nodesPerElement
 
int nodesPerSide
 
int numEdges
 
int numFaces
 
int numBoundaries
 
int nodesInBaseElement
 
int nodesPerSubElement
 
int newNodesPerEdge
 
int newNodesPerFace
 
int newNodesPerVolume
 
AddedConnectivityOrdinalMap addedConnectivities
 
AddedConnectivityOrdinalMap edgeNodeConnectivities
 
AddedConnectivityOrdinalMap faceNodeConnectivities
 
AddedConnectivityOrdinalMap volumeNodeConnectivities
 
AddedNodeLocationsMap nodeLocs
 
SubElementConnectivity subElementConnectivity
 
std::vector< ordinal_typebaseNodeOrdinals
 
std::vector< ordinal_typepromotedNodeOrdinals
 
std::vector< ordinal_typenodeMap
 
std::vector< ordinal_typenodeMapBC
 
std::vector< std::vector< ordinal_type > > baseEdgeConnectivity
 
std::vector< std::vector< ordinal_type > > baseFaceConnectivity
 
std::vector< std::vector< ordinal_type > > baseFaceEdgeConnectivity
 
std::vector< std::vector< ordinal_type > > inverseNodeMap
 
std::vector< std::vector< ordinal_type > > inverseNodeMapBC
 
std::vector< std::vector< ordinal_type > > faceNodeMap
 
std::vector< std::vector< ordinal_type > > sideOrdinalMap
 

Protected Member Functions

 ElementDescription ()
 

Member Typedef Documentation

We implement the high order method using the "super topology" concept in STK.

However,"super topologies" in STK only hold information about the number of nodes. An "ElementDescription" provides the remaining topological information as well as the reference coordinates of the nodes.

Constructor & Destructor Documentation

sierra::nalu::ElementDescription::~ElementDescription ( )
virtualdefault

Referenced by create().

sierra::nalu::ElementDescription::ElementDescription ( )
protecteddefault

Referenced by create().

Member Function Documentation

std::unique_ptr< ElementDescription > sierra::nalu::ElementDescription::create ( int  dimension,
int  order 
)
static

References ElementDescription(), sierra::nalu::gauss_lobatto_legendre_rule(), and ~ElementDescription().

Referenced by anonymous_namespace{UnitTestHOMasterElements.C}::check_derivative_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_derivative_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_interpolation_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_interpolation_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_is_in_element_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_is_in_element_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_is_not_in_element_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_is_not_in_element_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_point_interpolation_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_point_interpolation_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_volume_quadrature_hex(), anonymous_namespace{UnitTestHOMasterElements.C}::check_volume_quadrature_hex_SGL(), anonymous_namespace{UnitTestHOMasterElements.C}::check_volume_quadrature_quad(), anonymous_namespace{UnitTestHOMasterElements.C}::check_volume_quadrature_quad_SGL(), create(), sierra::nalu::create_surface_master_element(), sierra::nalu::create_volume_master_element(), unit_test_utils::dump_promoted_mesh_file(), unit_test_utils::fill_and_promote_hex_mesh(), sierra::nalu::Realm::setup_element_promotion(), PromoteElementQuadTestV2::setup_promotion(), PromoteElementHexTestV2::setup_promotion(), and anonymous_namespace{UnitTestElementDescription.C}::TEST().

std::unique_ptr< ElementDescription > sierra::nalu::ElementDescription::create ( int  dimension,
stk::topology  topo 
)
static
ordinal_type sierra::nalu::ElementDescription::node_map ( ordinal_type  i,
ordinal_type  j 
) const
inline
ordinal_type sierra::nalu::ElementDescription::node_map ( ordinal_type  i,
ordinal_type  j,
ordinal_type  k 
) const
inline

References nodeMap, and nodes1D.

ordinal_type sierra::nalu::ElementDescription::node_map_bc ( ordinal_type  j) const
inline
ordinal_type sierra::nalu::ElementDescription::node_map_bc ( ordinal_type  i,
ordinal_type  j 
) const
inline

References nodeMapBC, and nodes1D.

const ordinal_type* sierra::nalu::ElementDescription::side_node_ordinals ( ordinal_type  sideOrdinal) const
inline

Member Data Documentation

AddedConnectivityOrdinalMap sierra::nalu::ElementDescription::addedConnectivities
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::baseEdgeConnectivity
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::baseFaceConnectivity
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::baseFaceEdgeConnectivity
std::vector<ordinal_type> sierra::nalu::ElementDescription::baseNodeOrdinals
stk::topology sierra::nalu::ElementDescription::baseTopo
int sierra::nalu::ElementDescription::dimension
AddedConnectivityOrdinalMap sierra::nalu::ElementDescription::edgeNodeConnectivities
AddedConnectivityOrdinalMap sierra::nalu::ElementDescription::faceNodeConnectivities
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::faceNodeMap
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::inverseNodeMap
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::inverseNodeMapBC
int sierra::nalu::ElementDescription::newNodesPerEdge
int sierra::nalu::ElementDescription::newNodesPerFace
int sierra::nalu::ElementDescription::newNodesPerVolume
AddedNodeLocationsMap sierra::nalu::ElementDescription::nodeLocs
std::vector<double> sierra::nalu::ElementDescription::nodeLocs1D
std::vector<ordinal_type> sierra::nalu::ElementDescription::nodeMap
std::vector<ordinal_type> sierra::nalu::ElementDescription::nodeMapBC
int sierra::nalu::ElementDescription::nodes1D

Referenced by sierra::nalu::QuadNElementDescription::get_edge_offsets(), sierra::nalu::HexNElementDescription::get_edge_offsets(), sierra::nalu::HexNElementDescription::get_face_offsets(), sierra::nalu::HexNElementDescription::HexNElementDescription(), sierra::nalu::HigherOrderEdge2DSCS::HigherOrderEdge2DSCS(), sierra::nalu::HigherOrderQuad3DSCS::HigherOrderQuad3DSCS(), sierra::nalu::QuadNElementDescription::nmap(), sierra::nalu::HexNElementDescription::nmap(), node_map(), node_map_bc(), sierra::nalu::QuadNElementDescription::QuadNElementDescription(), sierra::nalu::HigherOrderHexSCS::set_boundary_info(), sierra::nalu::HigherOrderQuad2DSCS::set_boundary_info(), sierra::nalu::QuadNElementDescription::set_boundary_node_mappings(), sierra::nalu::HexNElementDescription::set_boundary_node_mappings(), sierra::nalu::HigherOrderHexSCV::set_interior_info(), sierra::nalu::HigherOrderHexSCS::set_interior_info(), sierra::nalu::HigherOrderQuad3DSCS::set_interior_info(), sierra::nalu::HigherOrderQuad2DSCV::set_interior_info(), sierra::nalu::HigherOrderQuad2DSCS::set_interior_info(), sierra::nalu::QuadNElementDescription::set_isoparametric_coordinates(), sierra::nalu::HexNElementDescription::set_isoparametric_coordinates(), sierra::nalu::QuadNElementDescription::set_side_node_ordinals(), sierra::nalu::HexNElementDescription::set_side_node_ordinals(), sierra::nalu::QuadNElementDescription::set_subelement_connectivites(), sierra::nalu::HexNElementDescription::set_subelement_connectivites(), sierra::nalu::QuadNElementDescription::set_tensor_product_node_mappings(), sierra::nalu::HexNElementDescription::set_tensor_product_node_mappings(), and sierra::nalu::SGLQuadratureOps::SGLQuadratureOps().

int sierra::nalu::ElementDescription::nodesInBaseElement
int sierra::nalu::ElementDescription::nodesPerElement
int sierra::nalu::ElementDescription::nodesPerSide
int sierra::nalu::ElementDescription::nodesPerSubElement
int sierra::nalu::ElementDescription::numBoundaries
int sierra::nalu::ElementDescription::numEdges
int sierra::nalu::ElementDescription::numFaces
int sierra::nalu::ElementDescription::polyOrder
std::vector<ordinal_type> sierra::nalu::ElementDescription::promotedNodeOrdinals
std::vector<std::vector<ordinal_type> > sierra::nalu::ElementDescription::sideOrdinalMap
SubElementConnectivity sierra::nalu::ElementDescription::subElementConnectivity
AddedConnectivityOrdinalMap sierra::nalu::ElementDescription::volumeNodeConnectivities

The documentation for this struct was generated from the following files: