1 // Copyright(C) 1999-2020 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 #ifndef IOSS_Ioss_NodeSet_h 8 #define IOSS_Ioss_NodeSet_h 9 10 #include "vtk_ioss_mangle.h" 11 12 #include "Ioss_EntityType.h" // for EntityType, etc 13 #include "Ioss_Property.h" // for Property 14 #include <Ioss_EntitySet.h> // for EntitySet 15 #include <cstddef> // for size_t 16 #include <cstdint> // for int64_t 17 #include <string> // for string 18 namespace Ioss { 19 class DatabaseIO; 20 } // namespace Ioss 21 namespace Ioss { 22 class Field; 23 } // namespace Ioss 24 25 namespace Ioss { 26 27 /** \brief A collection of nodes. 28 */ 29 class NodeSet : public EntitySet 30 { 31 public: 32 NodeSet(); // Used for template typing only 33 NodeSet(const NodeSet &) = default; 34 NodeSet(DatabaseIO *io_database, const std::string &my_name, int64_t number_nodes); 35 type_string()36 std::string type_string() const override { return "NodeSet"; } short_type_string()37 std::string short_type_string() const override { return "nodelist"; } contains_string()38 std::string contains_string() const override { return "Node"; } type()39 EntityType type() const override { return NODESET; } 40 41 // Handle implicit properties -- These are calcuated from data stored 42 // in the grouping entity instead of having an explicit value assigned. 43 // An example would be 'element_block_count' for a region. 44 Property get_implicit_property(const std::string &my_name) const override; 45 46 protected: 47 int64_t internal_get_field_data(const Field &field, void *data, 48 size_t data_size) const override; 49 50 int64_t internal_put_field_data(const Field &field, void *data, 51 size_t data_size) const override; 52 }; 53 } // namespace Ioss 54 #endif 55