46 const std::string &dc_type)
50 if (dc_type ==
"visit")
58 else if ( dc_type ==
"sidre" || dc_type ==
"sidre_hdf5")
63 MFEM_ABORT(
"Must build with MFEM_USE_SIDRE=YES for sidre support.");
66 else if ( dc_type ==
"json" ||
67 dc_type ==
"conduit_json" ||
68 dc_type ==
"conduit_bin" ||
71 #ifdef MFEM_USE_CONDUIT
81 MFEM_ABORT(
"Must build with MFEM_USE_CONDUIT=YES for conduit support.");
84 else if ( dc_type.substr(0,3) ==
"fms")
88 std::string::size_type pos = dc_type.find(
"_");
89 if (pos != std::string::npos)
91 std::string fms_protocol(dc_type.substr(pos+1, dc_type.size()-pos-1));
92 fms_dc->SetProtocol(fms_protocol);
96 MFEM_ABORT(
"Must build with MFEM_USE_FMS=YES for FMS support.");
101 MFEM_ABORT(
"Unsupported Data Collection type:" << dc_type);
107 int main(
int argc,
char *argv[])
115 const char *src_coll_name = NULL;
116 const char *src_coll_type =
"visit";
118 const char *out_coll_name = NULL;
119 const char *out_coll_type =
"visit";
122 args.
AddOption(&src_coll_name,
"-s",
"--source-root-prefix",
123 "Set the source data collection root file prefix.",
true);
124 args.
AddOption(&out_coll_name,
"-o",
"--output-root-prefix",
125 "Set the source data collection root file prefix.",
true);
126 args.
AddOption(&src_cycle,
"-c",
"--cycle",
127 "Set the source cycle index to read.");
128 args.
AddOption(&src_coll_type,
"-st",
"--source-type",
129 "Set the source data collection type. Options:\n"
130 "\t visit: VisItDataCollection (default)\n"
131 "\t sidre or sidre_hdf5: SidreDataCollection\n"
132 "\t json: ConduitDataCollection w/ protocol json\n"
133 "\t conduit_json: ConduitDataCollection w/ protocol conduit_json\n"
134 "\t conduit_bin: ConduitDataCollection w/ protocol conduit_bin\n"
135 "\t hdf5: ConduitDataCollection w/ protocol hdf5\n"
136 "\t fms: FMSDataCollection w/ protocol ascii\n"
137 "\t fms_json: FMSDataCollection w/ protocol json\n"
138 "\t fms_yaml: FMSDataCollection w/ protocol yaml\n"
139 "\t fms_hdf5: FMSDataCollection w/ protocol hdf5");
140 args.
AddOption(&out_coll_type,
"-ot",
"--output-type",
141 "Set the output data collection type. Options:\n"
142 "\t visit: VisItDataCollection (default)\n"
143 "\t sidre or sidre_hdf5: SidreDataCollection\n"
144 "\t json: ConduitDataCollection w/ protocol json\n"
145 "\t conduit_json: ConduitDataCollection w/ protocol conduit_json\n"
146 "\t conduit_bin: ConduitDataCollection w/ protocol conduit_bin\n"
147 "\t hdf5: ConduitDataCollection w/ protocol hdf5\n"
148 "\t fms: FMSDataCollection w/ protocol ascii\n"
149 "\t fms_json: FMSDataCollection w/ protocol json\n"
150 "\t fms_yaml: FMSDataCollection w/ protocol yaml\n"
151 "\t fms_hdf5: FMSDataCollection w/ protocol hdf5");
161 std::string(src_coll_type));
164 std::string(out_coll_type));
166 src->
Load(src_cycle);
168 if (src->
Error() != DataCollection::NO_ERROR)
170 mfem::out <<
"Error loading data collection: "
196 for (DataCollection::FieldMapType::const_iterator it = src_fields.begin();
197 it != src_fields.end();
205 if (out->
Error() != DataCollection::NO_ERROR)
207 mfem::out <<
"Error saving data collection: "
void SetCycle(int c)
Set time cycle (for time-dependent simulations)
double GetTime() const
Get physical time (for time-dependent simulations)
Data collection that uses the Conduit Mesh Blueprint specification.
int Error() const
Get the current error state.
Data collection that uses FMS.
double GetTimeStep() const
Get the simulation time step (for time-dependent simulations)
Data collection with Sidre routines following the Conduit mesh blueprint specification.
A simple convenience class that calls MPI_Init() at construction and MPI_Finalize() at destruction...
virtual void RegisterField(const std::string &field_name, GridFunction *gf)
Add a grid function to the collection.
void Parse()
Parse the command-line options. Note that this function expects all the options provided through the ...
virtual void Save()
Save the collection to disk.
const FieldMapType & GetFieldMap() const
Get a const reference to the internal field map.
int GetCycle() const
Get time cycle (for time-dependent simulations)
Data collection with VisIt I/O routines.
bool Root() const
Return true if WorldRank() == 0.
DataCollection * create_data_collection(const std::string &dc_name, const std::string &dc_type)
void PrintUsage(std::ostream &out) const
Print the usage message.
void SetTime(double t)
Set physical time (for time-dependent simulations)
void SetOwnData(bool o)
Set the ownership of collection data.
OutStream err(std::cerr)
Global stream used by the library for standard error output. Initially it uses the same std::streambu...
void AddOption(bool *var, const char *enable_short_name, const char *enable_long_name, const char *disable_short_name, const char *disable_long_name, const char *description, bool required=false)
Add a boolean option and set 'var' to receive the value. Enable/disable tags are used to set the bool...
void Disable()
Disable output.
GFieldMap::MapType FieldMapType
void SetTimeStep(double ts)
Set the simulation time step (for time-dependent simulations)
void PrintOptions(std::ostream &out) const
Print the options.
virtual void Load(int cycle_=0)
Load the collection. Not implemented in the base class DataCollection.
Mesh * GetMesh()
Get a pointer to the mesh in the collection.
virtual void SetMesh(Mesh *new_mesh)
Set/change the mesh associated with the collection.
OutStream out(std::cout)
Global stream used by the library for standard output. Initially it uses the same std::streambuf as s...
void SetProtocol(const std::string &protocol)
Set the Conduit relay i/o protocol to use.
bool Good() const
Return true if the command line options were parsed successfully.