IOSS 2.0
Loading...
Searching...
No Matches
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
27 {
28 public:
29 IOSSparams(const std::string &fileName, const std::string &dbType)
30 : fileName(fileName), dbType(dbType), databaseIO(nullptr), isCatalyst(false)
31 {
32 }
33 bool isStructured() { return dbType == CGNS_DATABASE_TYPE; }
34 void printCatalystConduitNode() { conduitNode.print_detailed(); }
35 void *getCatalystConduitNode() { return conduit_cpp::c_node(&conduitNode); }
36 std::string fileName;
37 std::string dbType;
40 std::unique_ptr<Ioss::Region> region;
41 conduit_cpp::Node conduitNode;
42
43 private:
45 };
46
47 void addBlockMesh(const BlockMesh &blockMesh);
48 void writeIOSSFile(IOSSparams &iop);
49 void writeCatalystIOSSFile(IOSSparams &iop);
50 int getNumLocalPointsInMeshSet();
51
52 private:
53 std::vector<BlockMesh> bms;
54
55 void openIOSSDatabase(IOSSparams &iop);
56 void closeIOSSDatabase(IOSSparams &iop);
57
58 void switchStateDefineModel(IOSSparams &iop);
59 void switchStateModel(IOSSparams &iop);
60 void switchStateDefineTransient(IOSSparams &iop);
61 void switchStateTransient(IOSSparams &iop);
62
63 void writeStructuredBlockDefinitions(IOSSparams &iop);
64 void writeStructuredBlockBulkData(IOSSparams &iop);
65 void writeStructuredTransientFieldDefinitions(IOSSparams &iop);
66 void writeStructuredTransientBulkData(IOSSparams &iop);
67
68 void writeUnstructuredBlockDefinitions(IOSSparams &iop);
69 void writeUnstructuredBlockBulkData(IOSSparams &iop);
70 void writeUnstructuredTransientFieldDefinitions(IOSSparams &iop);
71 void writeUnstructuredTransientBulkData(IOSSparams &iop);
72
73 void saveConduitNode(IOSSparams &iop);
74
75 std::string getStructuredBlockName(int index);
76 std::string getStructuredNodeBlockName(int index);
77
78 std::string getUnstructuredBlockName(int index);
79
80 inline static const std::string CGNS_DATABASE_TYPE = "cgns";
81 inline static const std::string EXODUS_DATABASE_TYPE = "exodus";
82 inline static const std::string IOSS_CELL_FIELD = "cell";
83 inline static const std::string IOSS_POINT_FIELD = "point";
84 inline static const std::string IOSS_GLOBAL_FIELD = "global";
85 inline static const std::string IOSS_SCALAR_STORAGE = "scalar";
86 };
87
88} // namespace Iocatalyst
Definition Iocatalyst_BlockMeshSet.h:27
bool isStructured()
Definition Iocatalyst_BlockMeshSet.h:33
std::string dbType
Definition Iocatalyst_BlockMeshSet.h:37
Ioss::DatabaseIO * databaseIO
Definition Iocatalyst_BlockMeshSet.h:38
std::string fileName
Definition Iocatalyst_BlockMeshSet.h:36
IOSSparams(const std::string &fileName, const std::string &dbType)
Definition Iocatalyst_BlockMeshSet.h:29
conduit_cpp::Node conduitNode
Definition Iocatalyst_BlockMeshSet.h:41
void * getCatalystConduitNode()
Definition Iocatalyst_BlockMeshSet.h:35
std::unique_ptr< Ioss::Region > region
Definition Iocatalyst_BlockMeshSet.h:40
bool isCatalyst
Definition Iocatalyst_BlockMeshSet.h:39
void printCatalystConduitNode()
Definition Iocatalyst_BlockMeshSet.h:34
Definition Iocatalyst_BlockMeshSet.h:20
std::vector< BlockMesh > bms
Definition Iocatalyst_BlockMeshSet.h:53
Definition Iocatalyst_BlockMesh.h:16
An input or output Database.
Definition Ioss_DatabaseIO.h:63
A namespace for the Catalyst 2.0 database format.
Definition Iocatalyst_CatalystLogging.C:13