Newer
Older
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*
* EnginePy.cpp
*
* Created on: Mar 15, 2017
* Author: wgodoy
*/
#include "EnginePy.h"
#include "adiosPyFunctions.h"
namespace adios
{
EnginePy::EnginePy(ADIOSPy &adiosPy) : m_ADIOSPy{adiosPy} {}
void EnginePy::WritePy(VariablePy &variable, const pyArray &array)
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
if (variable.m_IsVariableDefined == false) // here define variable
{
if (IsType<char>(array))
DefineVariableInADIOS<char>(variable);
else if (IsType<unsigned char>(array))
DefineVariableInADIOS<unsigned char>(variable);
else if (IsType<short>(array))
DefineVariableInADIOS<short>(variable);
else if (IsType<unsigned short>(array))
DefineVariableInADIOS<unsigned short>(variable);
else if (IsType<int>(array))
DefineVariableInADIOS<int>(variable);
else if (IsType<unsigned int>(array))
DefineVariableInADIOS<unsigned int>(variable);
else if (IsType<long int>(array))
DefineVariableInADIOS<long int>(variable);
else if (IsType<unsigned long int>(array))
DefineVariableInADIOS<unsigned long int>(variable);
else if (IsType<long long int>(array))
DefineVariableInADIOS<long long int>(variable);
else if (IsType<unsigned long long int>(array))
DefineVariableInADIOS<unsigned long long int>(variable);
else if (IsType<float>(array))
DefineVariableInADIOS<float>(variable);
else if (IsType<double>(array))
DefineVariableInADIOS<double>(variable);
else if (IsType<long double>(array))
DefineVariableInADIOS<long double>(variable);
else if (IsType<std::complex<float>>(array))
DefineVariableInADIOS<std::complex<float>>(variable);
else if (IsType<std::complex<double>>(array))
DefineVariableInADIOS<std::complex<double>>(variable);
else if (IsType<std::complex<long double>>(array))
DefineVariableInADIOS<std::complex<long double>>(variable);
}
if (IsType<char>(array))
WriteVariableInADIOS<char>(variable, array);
else if (IsType<unsigned char>(array))
WriteVariableInADIOS<unsigned char>(variable, array);
else if (IsType<short>(array))
WriteVariableInADIOS<short>(variable, array);
else if (IsType<unsigned short>(array))
WriteVariableInADIOS<unsigned short>(variable, array);
else if (IsType<int>(array))
WriteVariableInADIOS<int>(variable, array);
else if (IsType<unsigned int>(array))
WriteVariableInADIOS<unsigned int>(variable, array);
else if (IsType<long int>(array))
WriteVariableInADIOS<long int>(variable, array);
else if (IsType<unsigned long int>(array))
WriteVariableInADIOS<unsigned long int>(variable, array);
else if (IsType<long long int>(array))
WriteVariableInADIOS<long long int>(variable, array);
else if (IsType<unsigned long long int>(array))
WriteVariableInADIOS<unsigned long long int>(variable, array);
else if (IsType<float>(array))
WriteVariableInADIOS<float>(variable, array);
else if (IsType<double>(array))
WriteVariableInADIOS<double>(variable, array);
else if (IsType<long double>(array))
WriteVariableInADIOS<long double>(variable, array);
else if (IsType<std::complex<float>>(array))
WriteVariableInADIOS<std::complex<float>>(variable, array);
else if (IsType<std::complex<double>>(array))
WriteVariableInADIOS<std::complex<double>>(variable, array);
else if (IsType<std::complex<long double>>(array))
WriteVariableInADIOS<std::complex<long double>>(variable, array);
void EnginePy::Advance() { m_Engine->Advance(); }
void EnginePy::Close() { m_Engine->Close(-1); }
void EnginePy::GetEngineType() const
std::cout << "Engine type " << m_Engine->m_EngineType << "\n";