NEMoSys
0.63.0
A modular, extensible resource with robust automated mesh generation, mesh quality analysis, adaptive mesh refinement, and data transfer between arbitrary meshes.
VtkHexToTetConversionDriver.C
Go to the documentation of this file.
1
/*******************************************************************************
2
* Promesh *
3
* Copyright (C) 2022, IllinoisRocstar LLC. All rights reserved. *
4
* *
5
* Promesh is the property of IllinoisRocstar LLC. *
6
* *
7
* IllinoisRocstar LLC *
8
* Champaign, IL *
9
* www.illinoisrocstar.com *
10
* promesh@illinoisrocstar.com *
11
*******************************************************************************/
12
/*******************************************************************************
13
* This file is part of Promesh *
14
* *
15
* This version of Promesh is free software: you can redistribute it and/or *
16
* modify it under the terms of the GNU Lesser General Public License as *
17
* published by the Free Software Foundation, either version 3 of the License, *
18
* or (at your option) any later version. *
19
* *
20
* Promesh is distributed in the hope that it will be useful, but WITHOUT ANY *
21
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS *
22
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more *
23
* details. *
24
* *
25
* You should have received a copy of the GNU Lesser General Public License *
26
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
27
* *
28
*******************************************************************************/
29
#include "
Drivers/Conversion/VtkHexToTetConversionDriver.H
"
30
31
namespace
NEM
{
32
namespace
DRV {
33
34
VtkHexToTetConversionDriver::VtkHexToTetConversionDriver
(
Files
files)
35
: files_(
std
::move(files)) {}
36
37
VtkHexToTetConversionDriver::VtkHexToTetConversionDriver
()
38
:
VtkHexToTetConversionDriver
({{}, {}}) {}
39
40
const
VtkHexToTetConversionDriver::Files
&
41
VtkHexToTetConversionDriver::getFiles
()
const
{
42
return
files_
;
43
}
44
45
void
VtkHexToTetConversionDriver::setFiles
(
Files
files) {
46
this->
files_
= std::move(files);
47
}
48
49
void
VtkHexToTetConversionDriver::execute
()
const
{
50
if
(this->
files_
.
inputMeshFile
.find(
".vt"
) != std::string::npos) {
51
std::cout <<
"Detected file in VTK format"
<< std::endl;
52
std::cout <<
"Converting to tet Mesh ...."
<< std::endl;
53
}
else
{
54
std::cerr <<
"Source mesh file is not in VTK format"
<< std::endl;
55
}
56
57
std::ifstream meshStream(this->
files_
.
inputMeshFile
);
58
if
(!meshStream.good()) {
59
std::cerr <<
"Error opening file "
<< this->
files_
.
inputMeshFile
60
<< std::endl;
61
exit(1);
62
}
63
// create meshBase object
64
std::shared_ptr<meshBase> myMesh =
65
meshBase::CreateShared
(this->
files_
.
inputMeshFile
);
66
67
// Converts hex mesh to tet mesh and writes in VTU file.
68
myMesh->convertHexToTetVTK(myMesh->getDataSet());
69
myMesh->report();
70
myMesh->write(this->
files_
.
outputMeshFile
);
71
}
72
73
const
VtkHexToTetConversionDriver::Opts
&
VtkHexToTetConversionDriver::getOpts
()
74
const
{
75
static
constexpr
Opts
opts{};
76
return
opts;
77
}
78
79
}
// namespace DRV
80
}
// namespace NEM
NEM::DRV::DriverInOutFiles::outputMeshFile
std::string outputMeshFile
Definition:
NemDriver.H:91
VtkHexToTetConversionDriver.H
std
STL namespace.
NEM::DRV::VtkHexToTetConversionDriver::getOpts
const Opts & getOpts() const
Definition:
VtkHexToTetConversionDriver.C:73
NEM
Definition:
AutoVerificationDriver.C:38
NEM::DRV::DriverInOutFiles
Definition:
NemDriver.H:86
NEM::DRV::VtkHexToTetConversionDriver::setFiles
void setFiles(Files files)
Definition:
VtkHexToTetConversionDriver.C:45
NEM::DRV::VtkHexToTetConversionDriver::getFiles
const Files & getFiles() const
Definition:
VtkHexToTetConversionDriver.C:41
NEM::DRV::DriverInOutFiles::inputMeshFile
std::string inputMeshFile
Definition:
NemDriver.H:90
meshBase::CreateShared
static std::shared_ptr< meshBase > CreateShared(const std::string &fname)
Create shared ptr from fname.
Definition:
meshBase.C:171
NEM::DRV::VtkHexToTetConversionDriver::Opts
Definition:
VtkHexToTetConversionDriver.H:56
NEM::DRV::VtkHexToTetConversionDriver::execute
void execute() const override
Run the workflow represented by the driver.
Definition:
VtkHexToTetConversionDriver.C:49
NEM::DRV::VtkHexToTetConversionDriver::files_
Files files_
Definition:
VtkHexToTetConversionDriver.H:53
NEM::DRV::VtkHexToTetConversionDriver::VtkHexToTetConversionDriver
VtkHexToTetConversionDriver()
Definition:
VtkHexToTetConversionDriver.C:37
NEM::DRV::VtkHexToTetConversionDriver
Definition:
VtkHexToTetConversionDriver.H:38
src
Drivers
Conversion
VtkHexToTetConversionDriver.C
Generated on Wed Jan 26 2022 16:40:02 for NEMoSys by
1.8.13