IOSS 2.0
Loading...
Searching...
No Matches
Ioss_Super.h
Go to the documentation of this file.
1// Copyright(C) 1999-2020, 2022, 2023, 2024 National Technology & Engineering Solutions
2// of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
3// NTESS, the U.S. Government retains certain rights in this software.
4//
5// See packages/seacas/LICENSE for details
6
7#pragma once
8
9#include "Ioss_CodeTypes.h" // for IntVector
10#include "Ioss_ElementPermutation.h" // for ElementPermutation
11#include <string> // for string
12
14#include "Ioss_Super.h"
15#include "ioss_export.h"
16
17namespace Ioss {
18 class ElementVariableType;
19} // namespace Ioss
20
21// STL Includes
22
23namespace Ioss {
24
25 class IOSS_EXPORT Super : public Ioss::ElementTopology
26 {
27
28 public:
29 static const char *name;
30
31 static void factory();
32 Super(const std::string &my_name, int node_count);
33 Super(const Super &) = delete;
34 virtual ~Super() override;
35
36 static void make_super(const std::string &type);
37
38 IOSS_NODISCARD ElementShape shape() const override { return ElementShape::UNKNOWN; }
39 IOSS_NODISCARD int spatial_dimension() const override;
40 IOSS_NODISCARD int parametric_dimension() const override;
41 IOSS_NODISCARD bool is_element() const override { return true; }
42 IOSS_NODISCARD bool is_shell() const override { return false; }
43 IOSS_NODISCARD int order() const override;
44
45 IOSS_NODISCARD int number_corner_nodes() const override;
46 IOSS_NODISCARD int number_nodes() const override;
47 IOSS_NODISCARD int number_edges() const override;
48 IOSS_NODISCARD int number_faces() const override;
49
50 IOSS_NODISCARD int number_nodes_edge(int edge = 0) const override;
51 IOSS_NODISCARD int number_nodes_face(int face = 0) const override;
52 IOSS_NODISCARD int number_edges_face(int face = 0) const override;
53
54 IOSS_NODISCARD Ioss::IntVector edge_connectivity(int edge_number) const override;
55 IOSS_NODISCARD Ioss::IntVector face_connectivity(int face_number) const override;
56 IOSS_NODISCARD Ioss::IntVector element_connectivity() const override;
57
58 IOSS_NODISCARD Ioss::IntVector face_edge_connectivity(int face_number) const override;
59
60 IOSS_NODISCARD Ioss::ElementTopology *face_type(int face_number = 0) const override;
61 IOSS_NODISCARD Ioss::ElementTopology *edge_type(int edge_number = 0) const override;
62
63 IOSS_NODISCARD const std::string &base_topology_permutation_name() const override
64 {
65 return baseTopologyName;
66 }
67
68 protected:
69 private:
72 std::string baseTopologyName{};
73 };
74} // namespace Ioss
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:54
Represents an element topology.
Definition Ioss_ElementTopology.h:69
Definition Ioss_ElementVariableType.h:17
Definition Ioss_Super.h:26
Super(const Super &)=delete
IOSS_NODISCARD bool is_shell() const override
Definition Ioss_Super.h:42
static const char * name
Definition Ioss_Super.h:29
IOSS_NODISCARD const std::string & base_topology_permutation_name() const override
Definition Ioss_Super.h:63
IOSS_NODISCARD ElementShape shape() const override
Definition Ioss_Super.h:38
IOSS_NODISCARD bool is_element() const override
Definition Ioss_Super.h:41
int nodeCount
Definition Ioss_Super.h:70
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
ElementShape
Definition Ioss_ElementTopology.h:24
std::vector< int > IntVector
Definition Ioss_CodeTypes.h:21