45 int id,
int domainID,
const CompositeMap &domain,
const int coordDim,
51 return std::make_shared<ZoneRotate>(
id, domainID, domain, coordDim, origin,
52 axis, angularVelEqn, rampTime, sector,
57 int id,
int domainID,
const CompositeMap &domain,
const int coordDim,
61 return std::make_shared<ZoneTranslate>(
id, domainID, domain, coordDim,
62 velocityEqns, displacementEqns);
68 return std::make_shared<ZoneFixed>(
id, domainID, domain, coordDim);
75 py::class_<ZoneBase, std::shared_ptr<ZoneBase>>(m,
"ZoneBase")
77 py::return_value_policy::reference_internal)
79 py::return_value_policy::reference_internal)
82 py::return_value_policy::copy)
85 py::return_value_policy::reference_internal)
89 py::class_<ZoneRotate, ZoneBase, std::shared_ptr<ZoneRotate>>(m,
97 py::class_<ZoneTranslate, ZoneBase, std::shared_ptr<ZoneTranslate>>(
103 py::class_<ZoneFixed, ZoneBase, std::shared_ptr<ZoneFixed>>(m,
"ZoneFixed")
#define NEKPY_WRAP_ENUM_STRING(MOD, ENUMNAME, MAPNAME)
void export_Zones(py::module &m)
ZoneRotateShPtr ZoneRotate_Init(int id, int domainID, const CompositeMap &domain, const int coordDim, const NekPoint< NekDouble > &origin, const DNekVec &axis, const LibUtilities::EquationSharedPtr &angularVelEqn, const NekDouble rampTime, const NekDouble sector, const Array< OneD, NekDouble > &base)
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
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
bool Move(NekDouble time)
Performs the movement of the zone at.
void ClearBoundingBoxes()
Clears all bounding boxes associated with the zones elements.
CompositeMap GetDomain() const
Returns the domain the zone is on.
bool & GetMoved()
Returns the flag which states if the zone has moved in this timestep.
MovementType GetMovementType() const
Returns the type of movement.
std::vector< Geometry * > const & GetElements() const
Returns all highest dimension elements in the zone.
int & GetDomainID()
Returns the ID of the domain making up this Zone.
int & GetId()
Returns the zone ID.
LibUtilities::EquationSharedPtr GetAngularVelEqn() const
Returns the equation for the angular velocity of the rotation.
NekDouble GetAngularVel(const NekDouble &time) const
Return the angular velocity of the zone at.
const DNekVec & GetAxis() const
Returns the axis the zone rotates about.
const NekPoint< NekDouble > & GetOrigin() const
Returns the origin the zone rotates about.
Array< OneD, LibUtilities::EquationSharedPtr > GetDisplacementEquation() const
Returns the equation for the displacement of the translation.
Array< OneD, LibUtilities::EquationSharedPtr > GetVelocityEquation() const
Returns the equation for the velocity of the translation.