ViennaLS
Loading...
Searching...
No Matches
lsReader.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <fstream>
4
5
#include <
lsDomain.hpp
>
6
#include <
lsPreCompileMacros.hpp
>
7
#include <utility>
8
9
namespace
viennals
{
10
11
using namespace
viennacore;
12
13
template
<
class
T,
int
D>
class
Reader
{
14
SmartPointer<Domain<T, D>> levelSet =
nullptr
;
15
std::string fileName;
16
17
public
:
18
Reader
() =
default
;
19
20
Reader
(SmartPointer<
Domain<T, D>
> passedLevelSet)
21
: levelSet(passedLevelSet) {}
22
23
Reader
(SmartPointer<
Domain<T, D>
> passedLevelSet, std::string passedFileName)
24
: levelSet(passedLevelSet), fileName(std::move(passedFileName)) {}
25
26
void
setLevelSet
(SmartPointer<
Domain<T, D>
> passedLevelSet) {
27
levelSet = passedLevelSet;
28
}
29
31
void
setFileName
(std::string passedFileName) {
32
fileName = std::move(passedFileName);
33
}
34
35
void
apply
() {
36
// check mesh
37
if
(levelSet ==
nullptr
) {
38
Logger::getInstance()
39
.addWarning(
"No mesh was passed to Reader. Not writing."
)
40
.print();
41
return
;
42
}
43
// check filename
44
if
(fileName.empty()) {
45
Logger::getInstance()
46
.addWarning(
"No file name specified for Reader. Not writing."
)
47
.print();
48
return
;
49
}
50
if
(fileName.find(
".lvst"
) != fileName.length() - 5) {
51
Logger::getInstance()
52
.addWarning(
"File name does not end in '.lvst', appending it."
)
53
.print();
54
fileName.append(
".lvst"
);
55
}
56
57
// Open file for writing and save serialized level set in it
58
std::ifstream fin(fileName, std::ios::binary);
59
60
levelSet->deserialize(fin);
61
62
fin.close();
63
}
64
};
65
66
// add all template specialisations for this class
67
PRECOMPILE_PRECISION_DIMENSION
(Reader)
68
69
}
// namespace viennals
viennals::Domain
Class containing all information about the level set, including the dimensions of the domain,...
Definition
lsDomain.hpp:27
viennals::Reader::Reader
Reader(SmartPointer< Domain< T, D > > passedLevelSet, std::string passedFileName)
Definition
lsReader.hpp:23
viennals::Reader::setLevelSet
void setLevelSet(SmartPointer< Domain< T, D > > passedLevelSet)
Definition
lsReader.hpp:26
viennals::Reader::Reader
Reader(SmartPointer< Domain< T, D > > passedLevelSet)
Definition
lsReader.hpp:20
viennals::Reader::Reader
Reader()=default
viennals::Reader::apply
void apply()
Definition
lsReader.hpp:35
viennals::Reader::setFileName
void setFileName(std::string passedFileName)
set file name for file to write
Definition
lsReader.hpp:31
lsDomain.hpp
lsPreCompileMacros.hpp
PRECOMPILE_PRECISION_DIMENSION
#define PRECOMPILE_PRECISION_DIMENSION(className)
Definition
lsPreCompileMacros.hpp:24
viennals
Definition
lsAdvect.hpp:36
include
viennals
lsReader.hpp
Generated by
1.13.2