https://mooseframework.inl.gov
MeshCoarseningUtils.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "libmesh/elem.h"
13 #include "libmesh/node.h"
14 #include "libmesh/point.h"
15 
17 {
29 bool getFineElementsFromInteriorNode(const libMesh::Node & interior_node,
30  const libMesh::Node & reference_node,
31  const libMesh::Elem & elem,
32  std::vector<const libMesh::Node *> & tentative_coarse_nodes,
33  std::set<const libMesh::Elem *> & fine_elements);
34 
42 void reorderNodes(std::vector<const libMesh::Node *> & nodes,
43  const libMesh::Point & origin,
44  const libMesh::Point & clock_start,
45  libMesh::Point & axis);
46 
54 unsigned int getOppositeNodeIndex(libMesh::ElemType elem_type, unsigned int node_index);
55 }
bool getFineElementsFromInteriorNode(const libMesh::Node &interior_node, const libMesh::Node &reference_node, const libMesh::Elem &elem, std::vector< const libMesh::Node *> &tentative_coarse_nodes, std::set< const libMesh::Elem *> &fine_elements)
Utility routine to gather vertex nodes for, and elements contained in, for a coarse QUAD or HEX eleme...
void reorderNodes(std::vector< const libMesh::Node *> &nodes, const libMesh::Point &origin, const libMesh::Point &clock_start, libMesh::Point &axis)
Utility routine to re-order a vector of nodes so that they can form a valid quad element.
unsigned int getOppositeNodeIndex(libMesh::ElemType elem_type, unsigned int node_index)
Utility routine to get the index of the node opposite, in the element, to the node of interest...