IOSS 2.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Iocatalyst_BlockMeshSet.h
Go to the documentation of this file.
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#pragma once
8
9#include "iocatalyst_export.h"
10
11#include <Ioss_Region.h>
12#include <catalyst.hpp>
14#include <cstddef>
15#include <vector>
16
17namespace Iocatalyst {
18
19 class IOCATALYST_EXPORT BlockMeshSet
20 {
21
22 public:
23 inline static const std::string CATALYST_DATABASE_TYPE = "catalyst";
24 inline static const std::string CATALYST_DUMMY_DATABASE = "dummy.db";
25 inline static const std::string NODE_BLOCK_NAME = "nodeblock";
26
28 {
29 public:
30 IOSSparams(const std::string &fileName, const std::string &dbType,
32 : fileName(fileName), dbType(dbType), databaseIO(nullptr), isCatalyst(false),
33 dbProps(dbProps), nodeBlockName(NODE_BLOCK_NAME), writeConnectivityRaw(false)
34 {
35 }
37 void printCatalystConduitNode() { conduitNode.print_detailed(); }
38 void *getCatalystConduitNode() { return conduit_cpp::c_node(&conduitNode); }
39 std::string fileName;
40 std::string dbType;
43 std::unique_ptr<Ioss::Region> region;
44 conduit_cpp::Node conduitNode;
46 std::string nodeBlockName;
48
49 private:
51 };
52
53 void addBlockMesh(const BlockMesh &blockMesh);
54 void writeIOSSFile(IOSSparams &iop);
57
59
60 std::string getStructuredBlockName(int index);
61 std::string getStructuredNodeBlockName(int index);
62
63 std::string getUnstructuredBlockName(int index);
64
65 private:
66 std::vector<BlockMesh> bms;
67
70
75
80
91
92 void saveConduitNode(IOSSparams &iop);
93
94 inline static const std::string CGNS_DATABASE_TYPE = "cgns";
95 inline static const std::string EXODUS_DATABASE_TYPE = "exodus";
96 inline static const std::string IOSS_CELL_FIELD = "cell";
97 inline static const std::string IOSS_POINT_FIELD = "point";
98 inline static const std::string IOSS_GLOBAL_FIELD = "global";
99 inline static const std::string IOSS_SCALAR_STORAGE = "scalar";
100 };
101
102} // namespace Iocatalyst
Definition Iocatalyst_BlockMeshSet.h:28
bool isStructured()
Definition Iocatalyst_BlockMeshSet.h:36
std::string dbType
Definition Iocatalyst_BlockMeshSet.h:40
Ioss::DatabaseIO * databaseIO
Definition Iocatalyst_BlockMeshSet.h:41
std::string fileName
Definition Iocatalyst_BlockMeshSet.h:39
std::string nodeBlockName
Definition Iocatalyst_BlockMeshSet.h:46
conduit_cpp::Node conduitNode
Definition Iocatalyst_BlockMeshSet.h:44
Ioss::PropertyManager dbProps
Definition Iocatalyst_BlockMeshSet.h:45
void * getCatalystConduitNode()
Definition Iocatalyst_BlockMeshSet.h:38
bool writeConnectivityRaw
Definition Iocatalyst_BlockMeshSet.h:47
IOSSparams(const std::string &fileName, const std::string &dbType, Ioss::PropertyManager dbProps={})
Definition Iocatalyst_BlockMeshSet.h:30
std::unique_ptr< Ioss::Region > region
Definition Iocatalyst_BlockMeshSet.h:43
bool isCatalyst
Definition Iocatalyst_BlockMeshSet.h:42
void printCatalystConduitNode()
Definition Iocatalyst_BlockMeshSet.h:37
Definition Iocatalyst_BlockMeshSet.h:20
static const std::string IOSS_CELL_FIELD
Definition Iocatalyst_BlockMeshSet.h:96
Ioss::DatabaseIO * getCatalystDatabase(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:74
static const std::string CATALYST_DATABASE_TYPE
Definition Iocatalyst_BlockMeshSet.h:23
void writeUnstructuredAddedTransientFieldsBulkData(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:431
int getNumLocalPointsInMeshSet()
Definition Iocatalyst_BlockMeshSet.C:25
std::string getStructuredNodeBlockName(int index)
Definition Iocatalyst_BlockMeshSet.C:474
void writeUnstructuredBlockDefinitions(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:293
static const std::string CGNS_DATABASE_TYPE
Definition Iocatalyst_BlockMeshSet.h:94
void writeUnstructuredAddedCellTransientFieldsBulkData(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:437
void writeUnstructuredAddedPointTransientFieldsBulkData(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:453
void closeIOSSDatabase(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:126
void writeStructuredTransientFieldDefinitions(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:259
void openIOSSDatabase(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:108
std::vector< BlockMesh > bms
Definition Iocatalyst_BlockMeshSet.h:66
static const std::string IOSS_GLOBAL_FIELD
Definition Iocatalyst_BlockMeshSet.h:98
void writeUnstructuredAddedPointTransientFields(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:397
static const std::string EXODUS_DATABASE_TYPE
Definition Iocatalyst_BlockMeshSet.h:95
void writeUnstructuredTransientBulkData(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:407
void switchStateDefineTransient(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:159
std::string getStructuredBlockName(int index)
Definition Iocatalyst_BlockMeshSet.C:469
void writeUnstructuredBlockBulkData(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:306
void writeStructuredTransientBulkData(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:272
void writeIOSSFile(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:98
static const std::string IOSS_SCALAR_STORAGE
Definition Iocatalyst_BlockMeshSet.h:99
void writeStructuredBlockBulkData(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:218
void writeStructuredBlockDefinitions(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:196
void switchStateDefineModel(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:132
void writeCatalystIOSSFile(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:40
void switchStateModel(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:144
void writeUnstructuredTransientFieldDefinitions(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:365
void switchStateTransient(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:170
static const std::string NODE_BLOCK_NAME
Definition Iocatalyst_BlockMeshSet.h:25
void writeUnstructuredAddedCellTransientFields(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:387
void addBlockMesh(const BlockMesh &blockMesh)
Definition Iocatalyst_BlockMeshSet.C:23
static const std::string CATALYST_DUMMY_DATABASE
Definition Iocatalyst_BlockMeshSet.h:24
static const std::string IOSS_POINT_FIELD
Definition Iocatalyst_BlockMeshSet.h:97
void writeUnstructuredAddedTransientFields(BlockMesh bm, IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:381
void saveConduitNode(IOSSparams &iop)
Definition Iocatalyst_BlockMeshSet.C:188
std::string getUnstructuredBlockName(int index)
Definition Iocatalyst_BlockMeshSet.C:479
Definition Iocatalyst_BlockMesh.h:16
An input or output Database.
Definition Ioss_DatabaseIO.h:63
A collection of Ioss::Property objects.
Definition Ioss_PropertyManager.h:36
A namespace for the Catalyst 2.0 database format.
Definition Iocatalyst_CatalystLogging.C:15