37#include <boost/python/suite/indexing/map_indexing_suite.hpp>
48 return std::make_shared<ZoneRotate>(
id, domainID, domain, coordDim,
origin,
53 int id,
int domainID,
const CompositeMap &domain,
const int coordDim,
57 return std::make_shared<ZoneTranslate>(
id, domainID, domain, coordDim,
58 velocityEqns, displacementEqns);
64 return std::make_shared<ZoneFixed>(
id, domainID, domain, coordDim);
71 py::class_<ZoneBase, std::shared_ptr<ZoneBase>, boost::noncopyable>(
72 "ZoneBase", py::no_init)
73 .def(
"GetMovementType", &ZoneBase::GetMovementType)
74 .def(
"GetDomain", &ZoneBase::GetDomain)
75 .def(
"GetId", &ZoneBase::GetId,
76 py::return_value_policy<py::copy_non_const_reference>())
77 .def(
"GetDomainID", &ZoneBase::GetDomainID,
78 py::return_value_policy<py::copy_non_const_reference>())
79 .def(
"Move", &ZoneBase::Move)
80 .def(
"GetElements", &ZoneBase::GetElements,
81 py::return_internal_reference<>())
82 .def(
"GetMoved", &ZoneBase::GetMoved,
83 py::return_value_policy<py::copy_non_const_reference>())
84 .def(
"ClearBoundingBoxes", &ZoneBase::ClearBoundingBoxes);
86 py::class_<ZoneRotate, py::bases<ZoneBase>, std::shared_ptr<ZoneRotate>>(
87 "ZoneRotate", py::no_init)
89 .def(
"GetAngualrVel", &ZoneRotate::GetAngularVel)
90 .def(
"GetOrigin", &ZoneRotate::GetOrigin,
91 py::return_value_policy<py::copy_const_reference>())
92 .def(
"GetAxis", &ZoneRotate::GetAxis,
93 py::return_value_policy<py::copy_const_reference>())
94 .def(
"GetAngularVelEqn", &ZoneRotate::GetAngularVelEqn);
96 py::class_<ZoneTranslate, py::bases<ZoneBase>,
97 std::shared_ptr<ZoneTranslate>>(
"ZoneTranslate", py::no_init)
99 .def(
"GetVelocityEquation", &ZoneTranslate::GetVelocityEquation)
100 .def(
"GetDisplacementEqn", &ZoneTranslate::GetDisplacementEquation);
102 py::class_<ZoneFixed, py::bases<ZoneBase>, std::shared_ptr<ZoneFixed>>(
103 "ZoneFixed", py::no_init)
#define NEKPY_WRAP_ENUM_STRING(ENUMNAME, MAPNAME)
ZoneRotateShPtr ZoneRotate_Init(int id, int domainID, const CompositeMap &domain, const int coordDim, const NekPoint< NekDouble > &origin, const DNekVec &axis, LibUtilities::EquationSharedPtr &angularVelEqn)
ZoneFixedShPtr ZoneFixed_Init(int id, int domainID, const CompositeMap &domain, const int coordDim)
ZoneTranslateShPtr ZoneTranslate_Init(int id, int domainID, const CompositeMap &domain, const int coordDim, const Array< OneD, LibUtilities::EquationSharedPtr > &velocityEqns, const Array< OneD, LibUtilities::EquationSharedPtr > &displacementEqns)
std::shared_ptr< Equation > EquationSharedPtr
const NekPoint< NekDouble > origin
std::shared_ptr< ZoneTranslate > ZoneTranslateShPtr
std::shared_ptr< ZoneRotate > ZoneRotateShPtr
MovementType
Enum of zone movement type.
std::shared_ptr< ZoneFixed > ZoneFixedShPtr
const std::string MovementTypeStr[]
Map of zone movement type to movement type string.
std::map< int, CompositeSharedPtr > CompositeMap