CppNoddy
0.92
|
#include <HST.h>
Public Member Functions | |
Rayleigh (OneD_Node_Mesh< _Type, _Type > &base_flow_solution, double &alpha, const std::string &right_bc_type="BL") | |
ctor – either for a complex solution in the complex plane, or a double solution along the real line. More... | |
void | global_evp () |
Solve the global eigenvalue problem for the Rayleigh equation by employing a second-order finite-difference matrix. More... | |
void | local_evp (std::size_t i_ev) |
Solve the EVP locally as a nonlinear BVP for just one mode. More... | |
void | remesh1 (const OneD_Node_Mesh< _Type, _Type > &new_baseflow) |
Refine the EIGENVECTORS mesh for a new baseflow. More... | |
OneD_Node_Mesh< std::complex< double >, _Type > & | eigenvectors () |
A handle to the eigenvectors mesh. More... | |
OneD_Node_Mesh< std::complex< double > > | eigenvector (unsigned i_ev) |
void | iterate_to_neutral (std::size_t i_ev) |
Iterate on the wavenumber ALPHA, using the local_evp routine, to drive a selected eigenvalue to be neutral (ie. More... | |
DenseVector< std::complex< double > > & | eigenvalues () |
A handle to the eigenvalues vector. More... | |
double & | alpha () |
A handle to the wavenumber. More... | |
void | iterate_to_neutral (std::size_t i_ev) |
void | iterate_to_neutral (std::size_t i_ev) |
void | global_evp () |
void | global_evp () |
Protected Attributes | |
std::string | RIGHT_BC_TYPE |
double | ALPHA |
OneD_Node_Mesh< _Type, _Type > | BASEFLOW |
OneD_Node_Mesh< std::complex< double >, _Type > | EIGENVECTORS |
DenseVector< std::complex< double > > | EIGENVALUES |
CppNoddy::HST::Rayleigh< _Type >::Rayleigh | ( | OneD_Node_Mesh< _Type, _Type > & | base_flow_solution, |
double & | alpha, | ||
const std::string & | right_bc_type = "BL" |
||
) |
ctor – either for a complex solution in the complex plane, or a double solution along the real line.
base_flow_solution | The base flow velocity profile and its curvature. |
alpha | The wavenumber of the perturbation. |
right_bc_type | Determines the choice of boundary condition. "BL" is a derivative condition, whilst "CHANNEL" is a Dirichlet impermeability condition |
Definition at line 332 of file HST.h.
|
inline |
A handle to the wavenumber.
Definition at line 140 of file HST.h.
References CppNoddy::HST::Rayleigh< _Type >::ALPHA.
Referenced by main().
|
inline |
A handle to the eigenvalues vector.
Definition at line 134 of file HST.h.
References CppNoddy::HST::Rayleigh< _Type >::EIGENVALUES.
Referenced by main().
|
inline |
Definition at line 118 of file HST.h.
References CppNoddy::HST::Rayleigh< _Type >::BASEFLOW, CppNoddy::HST::Rayleigh< _Type >::EIGENVECTORS, CppNoddy::OneD_Node_Mesh< _Type, _Xtype >::get_nnodes(), and CppNoddy::OneD_Node_Mesh< _Type, _Xtype >::nodes().
|
inline |
A handle to the eigenvectors mesh.
Definition at line 114 of file HST.h.
References CppNoddy::HST::Rayleigh< _Type >::EIGENVECTORS.
void CppNoddy::HST::Rayleigh< _Type >::global_evp | ( | ) |
void CppNoddy::HST::Rayleigh< double >::global_evp | ( | ) |
Definition at line 428 of file HST.h.
References CppNoddy::DenseLinearEigenSystem< _Type >::eigensolve(), CppNoddy::DenseLinearEigenSystem< _Type >::get_tagged_eigenvalues(), CppNoddy::DenseLinearEigenSystem< _Type >::get_tagged_eigenvectors(), h, CppNoddy::LinearEigenSystem_base::set_shift(), CppNoddy::DenseLinearEigenSystem< _Type >::tag_eigenvalues_disc(), and U.
void CppNoddy::HST::Rayleigh< std::complex< double > >::global_evp | ( | ) |
Definition at line 508 of file HST.h.
References CppNoddy::DenseLinearEigenSystem< _Type >::eigensolve(), CppNoddy::DenseLinearEigenSystem< _Type >::get_tagged_eigenvalues(), CppNoddy::DenseLinearEigenSystem< _Type >::get_tagged_eigenvectors(), h, CppNoddy::LinearEigenSystem_base::set_shift(), CppNoddy::DenseLinearEigenSystem< _Type >::tag_eigenvalues_disc(), and U.
void CppNoddy::HST::Rayleigh< _Type >::iterate_to_neutral | ( | std::size_t | i_ev | ) |
Iterate on the wavenumber ALPHA, using the local_evp routine, to drive a selected eigenvalue to be neutral (ie.
imaginary part is zero)
i_ev | The index of the eigenvalue to iterate on |
Referenced by main().
void CppNoddy::HST::Rayleigh< double >::iterate_to_neutral | ( | std::size_t | i_ev | ) |
void CppNoddy::HST::Rayleigh< std::complex< double > >::iterate_to_neutral | ( | std::size_t | i_ev | ) |
Definition at line 354 of file HST.h.
void CppNoddy::HST::Rayleigh< _Type >::local_evp | ( | std::size_t | i_ev | ) |
Solve the EVP locally as a nonlinear BVP for just one mode.
Again we employ a second-order accurate finite-difference scheme which allows for non-uniform distribution of nodal points.
i_ev | The index of the eigenvalue to solve for, based on the return from the global_evp method. |
Definition at line 371 of file HST.h.
void CppNoddy::HST::Rayleigh< _Type >::remesh1 | ( | const OneD_Node_Mesh< _Type, _Type > & | new_baseflow | ) |
Refine the EIGENVECTORS mesh for a new baseflow.
Useful following a global_evp solve and prior to a local_evp solve.
new_baseflow | A new mesh containing the base flow, we'll linearly interpolate to this mesh |
Definition at line 343 of file HST.h.
References CppNoddy::OneD_Node_Mesh< _Type, _Xtype >::remesh1().
|
protected |
Definition at line 147 of file HST.h.
Referenced by CppNoddy::HST::Rayleigh< _Type >::alpha().
|
protected |
Definition at line 148 of file HST.h.
Referenced by CppNoddy::HST::Rayleigh< _Type >::eigenvector().
|
protected |
Definition at line 150 of file HST.h.
Referenced by CppNoddy::HST::Rayleigh< _Type >::eigenvalues().
|
protected |
Definition at line 149 of file HST.h.
Referenced by CppNoddy::HST::Rayleigh< _Type >::eigenvector(), and CppNoddy::HST::Rayleigh< _Type >::eigenvectors().
|
protected |
© 2012
R.E. Hewitt