OGS
BinaryToPVTU.cpp File Reference

Detailed Description

A tool for debugging the mesh partitioning.

Definition in file BinaryToPVTU.cpp.

#include <tclap/CmdLine.h>
#include <vtkMPIController.h>
#include <vtkSmartPointer.h>
#include "BaseLib/CPUTime.h"
#include "BaseLib/FileTools.h"
#include "BaseLib/Logging.h"
#include "BaseLib/MPI.h"
#include "BaseLib/RunTime.h"
#include "BaseLib/TCLAPArguments.h"
#include "InfoLib/GitInfo.h"
#include "MeshLib/IO/VtkIO/VtuInterface.h"
#include "MeshLib/IO/readMeshFromFile.h"
#include "MeshLib/NodePartitionedMesh.h"
Include dependency graph for BinaryToPVTU.cpp:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 28 of file BinaryToPVTU.cpp.

29{
30 TCLAP::CmdLine cmd(
31 "Reads the binary mesh format and writes the data as vtus/pvtu.\n"
32 "OpenGeoSys-6 software, version " +
34 ".\n"
35 "Copyright (c) 2012-2025, OpenGeoSys Community "
36 "(http://www.opengeosys.org)",
38 TCLAP::ValueArg<std::string> mesh_input(
39 "i", "mesh-input-file-base",
40 "Input (.bin). The base name of the files containing the input mesh, "
41 "i.e., the file "
42 "name without the string beginning with '_partitioned' and ending "
43 "with ",
44 true, "", "BASE_FILENAME_INPUT_MESH");
45 cmd.add(mesh_input);
46
47 TCLAP::ValueArg<std::string> output_directory_arg(
48 "o", "output",
49 "output directory name and output base file name without extensions",
50 true, "", "directory/base_file_name_without_extensions");
51 cmd.add(output_directory_arg);
52
53 auto log_level_arg = BaseLib::makeLogLevelArg();
54 cmd.add(log_level_arg);
55
56 cmd.parse(argc, argv);
57
58 BaseLib::MPI::Setup mpi_setup(argc, argv);
59 BaseLib::initOGSLogger(log_level_arg.getValue());
60
61 // start the timer
62 BaseLib::RunTime run_timer;
63 run_timer.start();
64 BaseLib::CPUTime CPU_timer;
65 CPU_timer.start();
66
67 // init vtkMPI
68 vtkSmartPointer<vtkMPIController> controller =
69 vtkSmartPointer<vtkMPIController>::New();
70 controller->Initialize(&argc, &argv, 1);
71 vtkMPIController::SetGlobalController(controller);
72
74 dynamic_cast<MeshLib::NodePartitionedMesh*>(
75 MeshLib::IO::readMeshFromFile(mesh_input.getValue()));
76 INFO("Mesh '{:s}' read: {:d} nodes, {:d} elements.",
77 mesh->getName(),
78 mesh->getNumberOfNodes(),
79 mesh->getNumberOfElements());
80 INFO("Mesh read runtime: {:g} s.", run_timer.elapsed());
81 INFO("Mesh read CPU time: {:g} s.", CPU_timer.elapsed());
82
83 // Write output file
84 auto const file_name = output_directory_arg.getValue() + ".vtu";
85 DBUG("Writing output to '{:s}'.", file_name);
86
87 MeshLib::IO::VtuInterface vtu_interface(mesh);
88 vtu_interface.writeToFile(file_name);
89
90 INFO("Total runtime: {:g} s.", run_timer.elapsed());
91 INFO("Total CPU time: {:g} s.", CPU_timer.elapsed());
92 return EXIT_SUCCESS;
93}
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:36
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:30
Count CPU time.
Definition CPUTime.h:23
void start()
Start the timer.
Definition CPUTime.h:26
double elapsed() const
Get the elapsed time after started.
Definition CPUTime.h:29
Count the running time.
Definition RunTime.h:29
double elapsed() const
Get the elapsed time in seconds.
Definition RunTime.h:42
void start()
Start the timer.
Definition RunTime.h:32
Reads and writes VtkXMLUnstructuredGrid-files (vtu) to and from OGS data structures....
const std::string getName() const
Get name of the mesh.
Definition Mesh.h:105
std::size_t getNumberOfNodes() const
Get the number of nodes.
Definition Mesh.h:102
std::size_t getNumberOfElements() const
Get the number of elements.
Definition Mesh.h:99
TCLAP::ValueArg< std::string > makeLogLevelArg()
void initOGSLogger(std::string const &log_level)
Definition Logging.cpp:64
GITINFOLIB_EXPORT const std::string ogs_version
MeshLib::Mesh * readMeshFromFile(const std::string &file_name, bool const compute_element_neighbors)

References DBUG(), BaseLib::CPUTime::elapsed(), BaseLib::RunTime::elapsed(), MeshLib::Mesh::getName(), MeshLib::Mesh::getNumberOfElements(), MeshLib::Mesh::getNumberOfNodes(), INFO(), BaseLib::initOGSLogger(), BaseLib::makeLogLevelArg(), GitInfoLib::GitInfo::ogs_version, MeshLib::IO::readMeshFromFile(), BaseLib::CPUTime::start(), BaseLib::RunTime::start(), and MeshLib::IO::VtuInterface::writeToFile().