|
Nektar++
|
Rotating zone: Motion of every point around a given axis on an origin. More...
#include <Zones.h>
Public Member Functions | |
| ZoneRotate (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) | |
| ~ZoneRotate () override=default | |
| Default destructor. | |
| NekDouble | GetAngularVel (const NekDouble &time) const |
| Return the angular velocity of the zone at. | |
| NekDouble | GetAngle (const NekDouble &time) |
| Returns the rotation angle of the zone. | |
| void | Rotate (Array< OneD, NekDouble > &gloCoord, const NekDouble &angle) |
| Rotates the given global coordinate by the given angle. | |
| const NekPoint< NekDouble > & | GetOrigin () const |
| Returns the origin the zone rotates about. | |
| const DNekVec & | GetAxis () const |
| Returns the axis the zone rotates about. | |
| LibUtilities::EquationSharedPtr | GetAngularVelEqn () const |
| Returns the equation for the angular velocity of the rotation. | |
| NekDouble | v_GetAngle () const override |
| Returns zone rotate angle. | |
| const NekDouble & | GetSectorAngle () const |
| Returns the angle of rotating sector. | |
| const Array< OneD, NekDouble > & | GetSectorBase () const |
| Returns the angle of rotating sector. | |
Public Member Functions inherited from Nektar::SpatialDomains::ZoneBase | |
| ZoneBase (MovementType type, int indx, int domainID, CompositeMap domain, int coordDim) | |
| Constructor. | |
| virtual | ~ZoneBase ()=default |
| Default destructor. | |
| MovementType | GetMovementType () const |
| Returns the type of movement. | |
| CompositeMap | GetDomain () const |
| Returns the domain the zone is on. | |
| int & | GetId () |
| Returns the zone ID. | |
| int & | GetDomainID () |
| Returns the ID of the domain making up this Zone. | |
| bool | Move (NekDouble time) |
| Performs the movement of the zone at. | |
| std::vector< Geometry * > const & | GetElements () const |
| Returns all highest dimension elements in the zone. | |
| bool & | GetMoved () |
| Returns the flag which states if the zone has moved in this timestep. | |
| void | ClearBoundingBoxes () |
| Clears all bounding boxes associated with the zones elements. | |
| std::array< std::set< Geometry * >, 3 > & | GetConstituentElements () |
| Returns constituent elements, i.e. faces + edges. | |
| std::vector< PointGeom > & | GetOriginalVertex () |
| Returns all points in the zone at initialisation. | |
| virtual std::vector< NekDouble > | v_GetDisp () const |
| Returns zone displacment. | |
Protected Member Functions | |
| bool | v_Move (NekDouble time) final |
| Virtual function for movement of the zone at. | |
Protected Attributes | |
| NekPoint< NekDouble > | m_origin |
| Origin point rotation is performed around. | |
| DNekVec | m_axis |
| Axis rotation is performed around. | |
| LibUtilities::EquationSharedPtr | m_angularVelEqn |
| Equation defining angular velocity as a function of time. | |
| NekDouble | m_angle |
| Rotate angle. | |
| NekDouble | m_rampTime |
| Ramp time. | |
| NekDouble | m_sector |
| Sector angle. | |
| Array< OneD, NekDouble > | m_base |
| Base axis of sector. | |
| DNekMat | m_W = DNekMat(3, 3, 0.0) |
| W matrix Rodrigues' rotation formula, cross product of axis. | |
| DNekMat | m_W2 = DNekMat(3, 3, 0.0) |
| W^2 matrix Rodrigues' rotation formula, cross product of axis squared. | |
Protected Attributes inherited from Nektar::SpatialDomains::ZoneBase | |
| MovementType | m_type = MovementType::eNone |
| Type of zone movement. | |
| int | m_id |
| Zone ID. | |
| int | m_domainID |
| ID for the composite making up this zone. | |
| CompositeMap | m_domain |
| Zone domain. | |
| std::vector< Geometry * > | m_elements |
| Vector of highest dimension zone elements. | |
| std::array< std::set< Geometry * >, 3 > | m_constituentElements |
| Array of all dimension elements i.e. faces = [2], edges = [1], geom = [0]. | |
| bool | m_moved = true |
| Moved flag. | |
| int | m_coordDim |
| Coordinate dimension. | |
| std::vector< PointGeomUniquePtr > | m_verts |
| Vector of all points in the zone. | |
| std::vector< CurveSharedPtr > | m_curves |
| Vector of all curves in the zone. | |
| std::vector< PointGeom > | m_origVerts |
| Vector of all points in the zone at initialisation. | |
Rotating zone: Motion of every point around a given axis on an origin.
| Nektar::SpatialDomains::ZoneRotate::ZoneRotate | ( | 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 | ||
| ) |
Constructor for rotating zones
| id | Zone ID |
| domainID | ID associated with the the domain making up the zone |
| domain | Domain that the zone consists of |
| coordDim | Coordinate dimension |
| origin | Origin that the zone rotates about |
| axis | Axis that the zone rotates about |
| angularVelEqn | Equation for the angular velocity of rotation |
Definition at line 159 of file Movement/Zones.cpp.
|
overridedefault |
Default destructor.
Returns the rotation angle of the zone.
Definition at line 215 of file Movement/Zones.cpp.
References GetAngularVel(), m_angle, and m_rampTime.
Referenced by v_Move().
Return the angular velocity of the zone at.
| time |
Definition at line 202 of file Movement/Zones.cpp.
References m_angularVelEqn, and m_rampTime.
Referenced by export_Zones(), and GetAngle().
|
inline |
Returns the equation for the angular velocity of the rotation.
Definition at line 227 of file Zones.h.
References m_angularVelEqn.
Referenced by export_Zones().
|
inline |
Returns the axis the zone rotates about.
Definition at line 221 of file Zones.h.
References m_axis.
Referenced by export_Zones().
Returns the origin the zone rotates about.
Definition at line 215 of file Zones.h.
References m_origin.
Referenced by export_Zones().
|
inline |
| void Nektar::SpatialDomains::ZoneRotate::Rotate | ( | Array< OneD, NekDouble > & | gloCoord, |
| const NekDouble & | angle | ||
| ) |
Rotates the given global coordinate by the given angle.
Definition at line 283 of file Movement/Zones.cpp.
|
inlineoverridevirtual |
Returns zone rotate angle.
Reimplemented from Nektar::SpatialDomains::ZoneBase.
Definition at line 233 of file Zones.h.
References m_angle.
|
finalprotectedvirtual |
Virtual function for movement of the zone at.
| time |
Reimplemented from Nektar::SpatialDomains::ZoneBase.
Definition at line 231 of file Movement/Zones.cpp.
References Nektar::SpatialDomains::ZoneBase::ClearBoundingBoxes(), GetAngle(), Nektar::SpatialDomains::ZoneBase::m_curves, m_origin, Nektar::SpatialDomains::ZoneBase::m_origVerts, Nektar::SpatialDomains::ZoneBase::m_verts, m_W, and m_W2.
|
protected |
|
protected |
Equation defining angular velocity as a function of time.
Definition at line 256 of file Zones.h.
Referenced by GetAngularVel(), and GetAngularVelEqn().
|
protected |
Axis rotation is performed around.
Definition at line 254 of file Zones.h.
Referenced by GetAxis(), and ZoneRotate().
Origin point rotation is performed around.
Definition at line 252 of file Zones.h.
Referenced by GetOrigin(), Rotate(), and v_Move().
|
protected |
|
protected |
W matrix Rodrigues' rotation formula, cross product of axis.
Definition at line 266 of file Zones.h.
Referenced by Rotate(), v_Move(), and ZoneRotate().