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
Classes | Typedefs | Functions
sierra::nalu::promotion::internal Namespace Reference

Classes

struct  EntityIdVectorHash
 

Typedefs

using ConnectivityMap = std::unordered_map< stk::mesh::Entity, stk::mesh::EntityIdVector >
 
using NodesElemMap = std::unordered_map< stk::mesh::EntityIdVector, stk::mesh::Entity, EntityIdVectorHash >
 

Functions

std::pair< stk::mesh::PartVector, stk::mesh::PartVectorpromote_elements_quad (stk::mesh::BulkData &bulk, const ElementDescription &desc, const VectorFieldType &coordField, const stk::mesh::PartVector &partsToBePromoted, stk::mesh::Part &edgePart)
 
std::pair< stk::mesh::PartVector, stk::mesh::PartVectorpromote_elements_hex (stk::mesh::BulkData &bulk, const ElementDescription &desc, const VectorFieldType &coordField, const stk::mesh::PartVector &partsToBePromoted, stk::mesh::Part &edgePart, stk::mesh::Part &facePart)
 
template<class LOOP_BODY >
void bucket_loop (const stk::mesh::BucketVector &buckets, LOOP_BODY inner_loop_body)
 
stk::mesh::PartVector create_super_elements (stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::PartVector &elemPartsToBePromoted, const ConnectivityMap &edgeConnectivity, const ConnectivityMap &volumeConnectivity)
 
stk::mesh::PartVector create_super_elements (stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::PartVector &elemPartsToBePromoted, const ConnectivityMap &edgeConnectivity, const ConnectivityMap &faceConnectivity, const ConnectivityMap &volumeConnectivity)
 
stk::mesh::PartVector create_boundary_elements (stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::PartVector &parts)
 
stk::mesh::EntityId choose_consistent_node_id (stk::mesh::EntityId myId, stk::mesh::EntityId theirId)
 
void perform_parallel_consolidation_of_node_ids (const stk::mesh::BulkData &bulk, ConnectivityMap &connectivityMap)
 
void create_nodes_for_connectivity_map (stk::mesh::BulkData &bulk, const ConnectivityMap &map)
 
ConnectivityMap connectivity_map_for_parent_rank (stk::mesh::BulkData &bulk, const int numNewNodesOnTopo, const stk::mesh::Selector &selector, stk::topology::rank_t parent_rank)
 
void add_base_nodes_to_elem_connectivity (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::Entity elem, stk::mesh::EntityIdVector &allNodes)
 
int index_edge_nodes (int i, int len, stk::mesh::Permutation perm)
 
int index_face_nodes (int i, int j, int len1D, stk::mesh::Permutation perm)
 
void add_edge_nodes_to_elem_connectivity (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const ConnectivityMap &edgeConnectivity, const stk::mesh::Entity elem, stk::mesh::EntityIdVector &allNodes)
 
void add_face_nodes_to_elem_connectivity (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const ConnectivityMap &faceConnectivity, const stk::mesh::Entity elem, stk::mesh::EntityIdVector &allNodes)
 
void add_volume_nodes_to_elem_connectivity (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const ConnectivityMap &volumeConnectivity, const stk::mesh::Entity elem, stk::mesh::EntityIdVector &allNodes)
 
bool destroy_entity (stk::mesh::BulkData &bulk, stk::mesh::Entity entity)
 
void destroy_entities (stk::mesh::BulkData &bulk, const stk::mesh::Selector &selector, stk::topology::rank_t rank)
 
void set_coordinates_quad (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::PartVector &promotedPartVector, const VectorFieldType &coordField)
 
void set_coordinates_hex (const stk::mesh::BulkData &bulk, const ElementDescription &desc, const stk::mesh::PartVector &promotedPartVector, const VectorFieldType &coordField)
 
NodesElemMap make_base_nodes_to_elem_map_at_boundary (const ElementDescription &desc, const stk::mesh::BulkData &mesh, const stk::mesh::PartVector &meshParts)
 
std::unordered_map< stk::mesh::Entity, stk::mesh::Entity > exposed_side_to_super_elem_map (const ElementDescription &desc, const stk::mesh::BulkData &bulk, const stk::mesh::PartVector &base_elem_mesh_parts)
 

Typedef Documentation

using sierra::nalu::promotion::internal::ConnectivityMap = typedef std::unordered_map<stk::mesh::Entity, stk::mesh::EntityIdVector>
using sierra::nalu::promotion::internal::NodesElemMap = typedef std::unordered_map< stk::mesh::EntityIdVector, stk::mesh::Entity, EntityIdVectorHash >

Function Documentation

void sierra::nalu::promotion::internal::add_base_nodes_to_elem_connectivity ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::Entity  elem,
stk::mesh::EntityIdVector allNodes 
)
void sierra::nalu::promotion::internal::add_edge_nodes_to_elem_connectivity ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const ConnectivityMap edgeConnectivity,
const stk::mesh::Entity  elem,
stk::mesh::EntityIdVector allNodes 
)
void sierra::nalu::promotion::internal::add_face_nodes_to_elem_connectivity ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const ConnectivityMap faceConnectivity,
const stk::mesh::Entity  elem,
stk::mesh::EntityIdVector allNodes 
)
void sierra::nalu::promotion::internal::add_volume_nodes_to_elem_connectivity ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const ConnectivityMap volumeConnectivity,
const stk::mesh::Entity  elem,
stk::mesh::EntityIdVector allNodes 
)
template<class LOOP_BODY >
void sierra::nalu::promotion::internal::bucket_loop ( const stk::mesh::BucketVector buckets,
LOOP_BODY  inner_loop_body 
)
stk::mesh::EntityId sierra::nalu::promotion::internal::choose_consistent_node_id ( stk::mesh::EntityId  myId,
stk::mesh::EntityId  theirId 
)
ConnectivityMap sierra::nalu::promotion::internal::connectivity_map_for_parent_rank ( stk::mesh::BulkData &  bulk,
const int  numNewNodesOnTopo,
const stk::mesh::Selector &  selector,
stk::topology::rank_t  parent_rank 
)
stk::mesh::PartVector sierra::nalu::promotion::internal::create_boundary_elements ( stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::PartVector parts 
)
void sierra::nalu::promotion::internal::create_nodes_for_connectivity_map ( stk::mesh::BulkData &  bulk,
const ConnectivityMap map 
)
stk::mesh::PartVector sierra::nalu::promotion::internal::create_super_elements ( stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::PartVector elemPartsToBePromoted,
const ConnectivityMap edgeConnectivity,
const ConnectivityMap volumeConnectivity 
)
stk::mesh::PartVector sierra::nalu::promotion::internal::create_super_elements ( stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::PartVector elemPartsToBePromoted,
const ConnectivityMap edgeConnectivity,
const ConnectivityMap faceConnectivity,
const ConnectivityMap volumeConnectivity 
)
void sierra::nalu::promotion::internal::destroy_entities ( stk::mesh::BulkData &  bulk,
const stk::mesh::Selector &  selector,
stk::topology::rank_t  rank 
)
bool sierra::nalu::promotion::internal::destroy_entity ( stk::mesh::BulkData &  bulk,
stk::mesh::Entity  entity 
)

Referenced by destroy_entities().

std::unordered_map< stk::mesh::Entity, stk::mesh::Entity > sierra::nalu::promotion::internal::exposed_side_to_super_elem_map ( const ElementDescription desc,
const stk::mesh::BulkData &  bulk,
const stk::mesh::PartVector base_elem_mesh_parts 
)
int sierra::nalu::promotion::internal::index_edge_nodes ( int  i,
int  len,
stk::mesh::Permutation  perm 
)
int sierra::nalu::promotion::internal::index_face_nodes ( int  i,
int  j,
int  len1D,
stk::mesh::Permutation  perm 
)
NodesElemMap sierra::nalu::promotion::internal::make_base_nodes_to_elem_map_at_boundary ( const ElementDescription desc,
const stk::mesh::BulkData &  mesh,
const stk::mesh::PartVector meshParts 
)
void sierra::nalu::promotion::internal::perform_parallel_consolidation_of_node_ids ( const stk::mesh::BulkData &  bulk,
ConnectivityMap connectivityMap 
)
std::pair< stk::mesh::PartVector, stk::mesh::PartVector > sierra::nalu::promotion::internal::promote_elements_hex ( stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const VectorFieldType coordField,
const stk::mesh::PartVector partsToBePromoted,
stk::mesh::Part &  edgePart,
stk::mesh::Part &  facePart 
)
std::pair< stk::mesh::PartVector, stk::mesh::PartVector > sierra::nalu::promotion::internal::promote_elements_quad ( stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const VectorFieldType coordField,
const stk::mesh::PartVector partsToBePromoted,
stk::mesh::Part &  edgePart 
)
void sierra::nalu::promotion::internal::set_coordinates_hex ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::PartVector promotedPartVector,
const VectorFieldType coordField 
)
void sierra::nalu::promotion::internal::set_coordinates_quad ( const stk::mesh::BulkData &  bulk,
const ElementDescription desc,
const stk::mesh::PartVector promotedPartVector,
const VectorFieldType coordField 
)