1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/////////////////////////////////////////////////////////////
// //
// Copyright (c) 2003-2017 by The University of Queensland //
// Centre for Geoscience Computing //
// http://earth.uq.edu.au/centre-geoscience-computing //
// //
// Primary Business: Brisbane, Queensland, Australia //
// Licensed under the Open Software License version 3.0 //
// http://www.apache.org/licenses/LICENSE-2.0 //
// //
/////////////////////////////////////////////////////////////
#ifndef ESYS_LSMINTERACTIONFIELDSAVERPRMSPY_H
#define ESYS_LSMINTERACTIONFIELDSAVERPRMSPY_H
#include "Python/esys/lsm/FieldSaverPrmsPy.h"
//--- STL includes ---
#include <string>
//--- Boost includes ---
#include <boost/python.hpp>
namespace esys
{
namespace lsm
{
class InteractionFieldSaverPrmsPy : public FieldSaverPrmsPy
{
public:
InteractionFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr
);
const std::string &getInteractionName() const
{
return m_interactionName;
}
private:
std::string m_interactionName;
};
class InteractionScalarFieldSaverPrmsPy : public InteractionFieldSaverPrmsPy
{
public:
InteractionScalarFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr
);
};
class CheckedInteractionScalarFieldSaverPrmsPy : public InteractionFieldSaverPrmsPy
{
public:
CheckedInteractionScalarFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr
);
};
class TaggedInteractionScalarFieldSaverPrmsPy : public InteractionScalarFieldSaverPrmsPy
{
public:
TaggedInteractionScalarFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr,
int tag,
int mask
);
int getTag() const {return m_tag;};
int getMask() const {return m_mask;};
protected:
int m_tag;
int m_mask;
};
class InteractionVectorFieldSaverPrmsPy : public InteractionFieldSaverPrmsPy
{
public:
InteractionVectorFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr
);
};
class CheckedInteractionVectorFieldSaverPrmsPy : public InteractionFieldSaverPrmsPy
{
public:
CheckedInteractionVectorFieldSaverPrmsPy(
const std::string &interactionName,
const std::string &fieldName,
const std::string &fileName,
const std::string &fileFormat,
int beginTimeStep,
int endTimeStep,
int timeStepIncr
);
};
void exportInteractionFieldSaverPrms();
} // namespace lsm
} // namespace esys
#endif
|