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) | |
~ZoneRotate () override=default | |
Default destructor. More... | |
NekDouble | GetAngularVel (NekDouble &time) const |
Return the angular velocity of the zone at. More... | |
const NekPoint< NekDouble > & | GetOrigin () const |
Returns the origin the zone rotates about. More... | |
const DNekVec & | GetAxis () const |
Returns the axis the zone rotates about. More... | |
LibUtilities::EquationSharedPtr | GetAngularVelEqn () const |
Returns the equation for the angular velocity of the rotation. More... | |
Public Member Functions inherited from Nektar::SpatialDomains::ZoneBase | |
ZoneBase (MovementType type, int indx, int domainID, CompositeMap domain, int coordDim) | |
Constructor. More... | |
virtual | ~ZoneBase ()=default |
Default destructor. More... | |
MovementType | GetMovementType () const |
Returns the type of movement. More... | |
CompositeMap | GetDomain () const |
Returns the domain the zone is on. More... | |
int & | GetId () |
Returns the zone ID. More... | |
int & | GetDomainID () |
Returns the ID of the domain making up this Zone. More... | |
bool | Move (NekDouble time) |
Performs the movement of the zone at. More... | |
std::vector< GeometrySharedPtr > const & | GetElements () const |
Returns all highest dimension elements in the zone. More... | |
bool & | GetMoved () |
Returns the flag which states if the zone has moved in this timestep. More... | |
void | ClearBoundingBoxes () |
Clears all bounding boxes associated with the zones elements. More... | |
std::array< std::set< GeometrySharedPtr >, 3 > & | GetConstituentElements () |
Returns constituent elements, i.e. faces + edges. More... | |
std::vector< PointGeom > & | GetOriginalVertex () |
Returns all points in the zone at initialisation. More... | |
virtual std::vector< NekDouble > | v_GetDisp () const |
Returns zone displacment. More... | |
Protected Member Functions | |
bool | v_Move (NekDouble time) final |
Virtual function for movement of the zone at. More... | |
virtual bool | v_Move (NekDouble time) |
Virtual function for movement of the zone at. More... | |
Protected Attributes | |
NekPoint< NekDouble > | m_origin |
Origin point rotation is performed around. More... | |
DNekVec | m_axis |
Axis rotation is performed around. More... | |
LibUtilities::EquationSharedPtr | m_angularVelEqn |
Equation defining angular velocity as a function of time. More... | |
DNekMat | m_W = DNekMat(3, 3, 0.0) |
W matrix Rodrigues' rotation formula, cross product of axis. More... | |
DNekMat | m_W2 = DNekMat(3, 3, 0.0) |
W^2 matrix Rodrigues' rotation formula, cross product of axis squared. More... | |
Protected Attributes inherited from Nektar::SpatialDomains::ZoneBase | |
MovementType | m_type = MovementType::eNone |
Type of zone movement. More... | |
int | m_id |
Zone ID. More... | |
int | m_domainID |
ID for the composite making up this zone. More... | |
CompositeMap | m_domain |
Zone domain. More... | |
std::vector< GeometrySharedPtr > | m_elements |
Vector of highest dimension zone elements. More... | |
std::array< std::set< GeometrySharedPtr >, 3 > | m_constituentElements |
Array of all dimension elements i.e. faces = [2], edges = [1], geom = [0]. More... | |
bool | m_moved = true |
Moved flag. More... | |
int | m_coordDim |
Coordinate dimension. More... | |
std::vector< PointGeomSharedPtr > | m_verts |
Vector of all points in the zone. More... | |
std::vector< CurveSharedPtr > | m_curves |
Vector of all curves in the zone. More... | |
std::vector< PointGeom > | m_origVerts |
Vector of all points in the zone at initialisation. More... | |
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 | ||
) |
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 161 of file Movement/Zones.cpp.
|
overridedefault |
Default destructor.
Return the angular velocity of the zone at.
time |
Definition at line 201 of file Movement/Zones.cpp.
References m_angularVelEqn.
Referenced by v_Move().
|
inline |
Returns the equation for the angular velocity of the rotation.
Definition at line 211 of file Zones.h.
References m_angularVelEqn.
|
inline |
|
finalprotectedvirtual |
Virtual function for movement of the zone at.
time |
Reimplemented from Nektar::SpatialDomains::ZoneBase.
Definition at line 215 of file Movement/Zones.cpp.
References Nektar::SpatialDomains::ZoneBase::ClearBoundingBoxes(), GetAngularVel(), Nektar::SpatialDomains::ZoneBase::m_curves, m_origin, Nektar::SpatialDomains::ZoneBase::m_origVerts, Nektar::SpatialDomains::ZoneBase::m_verts, m_W, and m_W2.
|
protected |
Equation defining angular velocity as a function of time.
Definition at line 222 of file Zones.h.
Referenced by GetAngularVel(), and GetAngularVelEqn().
|
protected |
Axis rotation is performed around.
Definition at line 220 of file Zones.h.
Referenced by GetAxis(), and ZoneRotate().
Origin point rotation is performed around.
Definition at line 218 of file Zones.h.
Referenced by GetOrigin(), and v_Move().
W matrix Rodrigues' rotation formula, cross product of axis.
Definition at line 224 of file Zones.h.
Referenced by v_Move(), and ZoneRotate().