VTK
dox
IO
ADIOS
ADIOSWriter.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: ADIOSWriter.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
15
// .NAME ADIOSWriter - The utility class performing ADIOS Write operations
16
17
#ifndef _ADIOSWriter_h
18
#define _ADIOSWriter_h
19
20
#include <limits>
21
#include <sstream>
22
#include <stdexcept>
23
#include <string>
24
#include <vector>
25
26
#include <adios_mpi.h>
27
28
#include "
ADIOSDefs.h
"
29
#include "
ADIOSUtilities.h
"
30
31
namespace
ADIOS
32
{
33
34
// An array dimension as either a string or integer
35
struct
ArrayDim
36
{
37
ArrayDim
(
size_t
i) :
ValueI
(i),
ValueS
(
""
) { }
38
ArrayDim
(
const
std::string
& var) :
ValueI
(0),
ValueS
(var) { }
39
40
size_t
ValueI
;
41
std::string
ValueS
;
42
};
43
44
class
Writer
45
{
46
public
:
47
static
bool
SetCommunicator
(MPI_Comm);
48
49
public
:
50
Writer
(
ADIOS::TransportMethod
transport,
const
std::string
& transportArgs);
51
52
~Writer
();
53
54
// Description:
55
// Define scalar attributes
56
template
<
typename
TN>
57
void
DefineAttribute
(
const
std::string
& path,
const
TN&
value
)
58
{
59
std::stringstream ss;
60
ss <<
value
;
61
this->
DefineAttribute
(path, Type::NativeToADIOS<TN>(), ss.str());
62
}
63
64
// Description:
65
// Define scalars for later writing
66
template
<
typename
TN>
67
int
DefineScalar
(
const
std::string
& path)
68
{
69
return
this->
DefineScalar
(path, Type::NativeToADIOS<TN>());
70
}
71
72
// Define an array for later writing
73
template
<
typename
TN>
74
int
DefineLocalArray
(
const
std::string
& path,
75
const
std::vector<ArrayDim>& dims,
Transform
xfm =
Transform_NONE
)
76
{
77
return
this->
DefineLocalArray
(path, Type::NativeToADIOS<TN>(), dims, xfm);
78
}
79
int
DefineLocalArray
(
const
std::string
& path, ADIOS_DATATYPES adiosType,
80
const
std::vector<ArrayDim>& dims,
Transform
xfm =
Transform_NONE
);
81
82
// Description:
83
// Enqueue a scalar for writing
84
template
<
typename
TN>
85
void
WriteScalar
(
const
std::string
& path,
const
TN& val)
86
{
87
this->
WriteScalar
(path, Type::NativeToADIOS<TN>(), &val);
88
}
89
void
WriteScalar
(
const
std::string
& path, ADIOS_DATATYPES adiosType,
90
const
void
* val);
91
92
// Description:
93
// Enqueue an array for writing
94
void
WriteArray
(
const
std::string
& path,
const
void
* val);
95
96
// Description:
97
// Perform all writes for the current time step
98
void
Commit
(
const
std::string
& fileName,
bool
append =
false
);
99
100
private
:
101
struct
InitContext;
102
InitContext *Ctx;
103
104
struct
WriterImpl;
105
WriterImpl *Impl;
106
107
void
DefineAttribute
(
const
std::string
& path, ADIOS_DATATYPES adiosType,
108
const
std::string
&
value
);
109
int
DefineScalar
(
const
std::string
& path, ADIOS_DATATYPES adiosType);
110
};
111
112
}
113
#endif // _ADIOSWriter_h
ADIOS::Writer
Definition:
ADIOSWriter.h:44
ADIOS::Writer::Commit
void Commit(const std::string &fileName, bool append=false)
ADIOSDefs.h
ADIOS::ArrayDim::ValueS
std::string ValueS
Definition:
ADIOSWriter.h:41
vtkX3D::value
@ value
Definition:
vtkX3D.h:220
ADIOS::Writer::WriteScalar
void WriteScalar(const std::string &path, const TN &val)
Definition:
ADIOSWriter.h:85
ADIOS::ArrayDim::ArrayDim
ArrayDim(size_t i)
Definition:
ADIOSWriter.h:37
ADIOSUtilities.h
ADIOS::ArrayDim
Definition:
ADIOSWriter.h:35
ADIOS::Transform
Transform
Definition:
ADIOSDefs.h:39
ADIOS::Writer::WriteArray
void WriteArray(const std::string &path, const void *val)
ADIOS::Writer::DefineLocalArray
int DefineLocalArray(const std::string &path, const std::vector< ArrayDim > &dims, Transform xfm=Transform_NONE)
Definition:
ADIOSWriter.h:74
ADIOS::ArrayDim::ValueI
size_t ValueI
Definition:
ADIOSWriter.h:40
ADIOS::Writer::Writer
Writer(ADIOS::TransportMethod transport, const std::string &transportArgs)
ADIOS::TransportMethod
TransportMethod
Definition:
ADIOSDefs.h:23
ADIOS::Writer::SetCommunicator
static bool SetCommunicator(MPI_Comm)
vtkX3D::string
@ string
Definition:
vtkX3D.h:490
ADIOS
Definition:
ADIOSAttribute.h:25
ADIOS::Transform_NONE
@ Transform_NONE
Definition:
ADIOSDefs.h:41
ADIOS::Writer::DefineScalar
int DefineScalar(const std::string &path)
Definition:
ADIOSWriter.h:67
ADIOS::ArrayDim::ArrayDim
ArrayDim(const std::string &var)
Definition:
ADIOSWriter.h:38
ADIOS::Writer::~Writer
~Writer()
ADIOS::Writer::DefineAttribute
void DefineAttribute(const std::string &path, const TN &value)
Definition:
ADIOSWriter.h:57
Generated by
1.8.17