Nektar++
Public Member Functions | Private Attributes | List of all members
Nektar::SolverUtils::FrameTransform Class Reference

#include <ForcingMovingReferenceFrame.h>

Public Member Functions

 FrameTransform ()
 
 ~FrameTransform ()
 
void SetAngle (const Array< OneD, NekDouble > theta)
 
void BodyToInerital (const int dim, const Array< OneD, NekDouble > &body, Array< OneD, NekDouble > &inertial)
 
void IneritalToBody (const int dim, Array< OneD, NekDouble > &body, const Array< OneD, NekDouble > &inertial)
 

Private Attributes

Array< OneD, NekDoublem_matrix
 

Detailed Description

Definition at line 85 of file ForcingMovingReferenceFrame.h.

Constructor & Destructor Documentation

◆ FrameTransform()

Nektar::SolverUtils::FrameTransform::FrameTransform ( )

Definition at line 1099 of file ForcingMovingReferenceFrame.cpp.

1100{
1101 m_matrix = Array<OneD, NekDouble>(2, 0.);
1102}

References m_matrix.

◆ ~FrameTransform()

Nektar::SolverUtils::FrameTransform::~FrameTransform ( )
inline

Definition at line 89 of file ForcingMovingReferenceFrame.h.

89{};

Member Function Documentation

◆ BodyToInerital()

void Nektar::SolverUtils::FrameTransform::BodyToInerital ( const int  dim,
const Array< OneD, NekDouble > &  body,
Array< OneD, NekDouble > &  inertial 
)

Definition at line 1109 of file ForcingMovingReferenceFrame.cpp.

1112{
1113 NekDouble xi = body[0], eta = body[1];
1114 inertial[0] = xi * m_matrix[0] - eta * m_matrix[1];
1115 inertial[1] = eta * m_matrix[0] + xi * m_matrix[1];
1116 if (body != inertial && dim > 2)
1117 {
1118 for (int i = 2; i < dim; ++i)
1119 {
1120 inertial[i] = body[i];
1121 }
1122 }
1123}
double NekDouble

References m_matrix.

Referenced by Nektar::SolverUtils::ForcingMovingReferenceFrame::SolveBodyMotion().

◆ IneritalToBody()

void Nektar::SolverUtils::FrameTransform::IneritalToBody ( const int  dim,
Array< OneD, NekDouble > &  body,
const Array< OneD, NekDouble > &  inertial 
)

Definition at line 1124 of file ForcingMovingReferenceFrame.cpp.

1126{
1127 NekDouble x = inertial[0], y = inertial[1];
1128 body[0] = x * m_matrix[0] + y * m_matrix[1];
1129 body[1] = y * m_matrix[0] - x * m_matrix[1];
1130 if (body != inertial && dim > 2)
1131 {
1132 for (int i = 2; i < dim; ++i)
1133 {
1134 body[i] = inertial[i];
1135 }
1136 }
1137}

References m_matrix.

Referenced by Nektar::SolverUtils::ForcingMovingReferenceFrame::Update(), and Nektar::SolverUtils::ForcingMovingReferenceFrame::UpdateBoundaryConditions().

◆ SetAngle()

void Nektar::SolverUtils::FrameTransform::SetAngle ( const Array< OneD, NekDouble theta)

Member Data Documentation

◆ m_matrix

Array<OneD, NekDouble> Nektar::SolverUtils::FrameTransform::m_matrix
private