23#include "../Utils_Fill.h"
41 double Udd(
double y )
137 B[ 2 ] =
z[
psi ] - 1.0;
164 cout <<
"=== EVP: Temporal OSE via the equation interface ====\n";
165 cout <<
"=== followed by local refinement of the eigenvalue.\n";
173 Example::Re = 5772.2;
174 Example::alpha = 1.02;
190 catch (
const std::runtime_error &error )
192 cout <<
" \033[1;31;48m * FAILED THROUGH EXCEPTION BEING RAISED \033[0m\n";
196 ode_global.
p_eigensystem() -> tag_eigenvalues_disc( + 1, 0.6 );
216 const double tol = 1.e-4;
217 if ( abs( ode_local.
solution()( 0,
eval ).imag() ) < tol )
219 cout <<
"\033[1;32;48m * PASSED \033[0m\n";
222 cout <<
"\033[1;31;48m * FAILED \033[0m\n";
A shorter bundled include file for ODE_BVP and PDE_IBVP codes.
A shorter bundled include file for ODE_EVP and general eigenvalue problems.
A matrix class that constructs a DENSE matrix as a row major std::vector of DenseVectors.
An DenseVector class – a dense vector object.
An equation object base class used in the IBVP classes (and others).
An equation object base class used in the PDE_double_IBVP class.
Define the OSE for the local refinement procedure.
OS_bvp_equation()
The OS LOCAL problem is a nonlinear 5th order complex BVP because the eigenvalue is added to the 4th ...
void matrix0(const DenseVector< D_complex > &z, DenseMatrix< D_complex > &m) const
matrix to multiply the BVP coordinate
void residual_fn(const DenseVector< D_complex > &z, DenseVector< D_complex > &g) const
The OS equation.
void residual_fn(const DenseVector< D_complex > &z, DenseVector< D_complex > &B) const
A blank virtual residual function method.
void residual_fn(const DenseVector< D_complex > &z, DenseVector< D_complex > &B) const
A blank virtual residual function method.
void residual_fn(const DenseVector< D_complex > &z, DenseVector< D_complex > &B) const
A blank virtual residual function method.
Define the OS equation for the global QZ EVP.
void matrix1(const DenseVector< D_complex > &z, DenseMatrix< D_complex > &m) const
Define the unsteady terms by providing the mass matrix Here we define the eigenvalue contribution to ...
void residual_fn(const DenseVector< D_complex > &z, DenseVector< D_complex > &g) const
The OS equation.
void matrix0(const DenseVector< D_complex > &z, DenseMatrix< D_complex > &m) const
matrix to multiply the BVP coordinate
OS_evp_equation()
The OS equation is a 4th order complex ODE.
A templated object for real/complex vector system of first-order ordinary differential equations.
void set_monitor_det(bool flag)
Set the flag that determines if the determinant will be monitored The default is to monitor.
OneD_Node_Mesh< _Type, _Xtype > & solution()
void solve2()
Formulate and solve the ODE using Newton iteration and a second-order finite difference scheme.
A templated object for real/complex vector system of first-order ordinary differential equations.
LinearEigenSystem_base * p_eigensystem()
Allow access to the underlying dense linear eigensystem through a pointer to the private member data.
void add_tagged_to_mesh()
OneD_Node_Mesh< D_complex > get_mesh(const unsigned &i) const
void eigensolve()
Formulate and solve the global eigenvalue problem for a linear system.
_Xtype & coord(const unsigned &i)
General handle access to the coordinates.
A base class to be inherited by objects that define residuals.
double Udd(double y)
Globally define the base flow curvature.
double Re
Globally define the Reynolds number and wavenumber.
double g(1.0)
gravitational acceleration
DenseVector< double > uniform_node_vector(const double &lower, const double &upper, const std::size_t &N)
Return a DENSE vector with the nodal points of a uniform mesh distributed between the upper/lower bou...
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...
std::complex< double > D_complex
A complex double precision number using std::complex.
void fill_identity(CppNoddy::Sequential_Matrix_base< _Type > &A)
Fill diagonal with unit values.