This implements a solver for a single parameter instability problem, for example a flutter solver where reduced frequency is the primary parameter.
Definition at line 41 of file ug_flutter_solver.h.
#include <ug_flutter_solver.h>
Public Member Functions  
UGFlutterSolver ()  
defalut constructor More...  
virtual  ~UGFlutterSolver () 
virtual void  calculate_sensitivity (MAST::FlutterRootBase &root, const MAST::FunctionBase &f, libMesh::NumericVector< Real > *dXdp=nullptr, libMesh::NumericVector< Real > *dXdkr=nullptr) 
Calculate the sensitivity of the flutter root with respect to the f parameter. More...  
void  clear () 
clears the solution and other data from this solver More...  
virtual void  clear_solutions () 
clears the solutions stored from a previous analysis. More...  
virtual std::pair< bool, MAST::FlutterRootBase * >  find_critical_root (const Real g_tol, const unsigned int n_bisection_iters) 
This method checks if the flutter root corresponding to the lowest velocity crossover has been calculated. More...  
virtual std::pair< bool, MAST::FlutterRootBase * >  find_next_root (const Real g_tol, const unsigned int n_bisection_iters) 
Looks through the list of flutter crossover points and iteratively zooms in to find the crossover point. More...  
const MAST::FlutterRootBase &  get_root (const unsigned int n) const 
returns the n th root in terms of ascending velocity that is found by the solver More...  
void  initialize (MAST::Parameter &kr_param, MAST::Parameter &bref_param, Real rho, Real kr_lower, Real kr_upper, unsigned int n_kr_divs, std::vector< libMesh::NumericVector< Real > *> &basis) 
initializes the data structres for a flutter solution. More...  
virtual unsigned int  n_roots_found () const 
finds the number of critical points already identified in the procedure. More...  
virtual void  print_crossover_points () 
Prints the crossover points output. More...  
virtual void  print_sorted_roots () 
Prints the sorted roots to the output . More...  
virtual void  scan_for_roots () 
Scans for flutter roots in the analyzed points, and identified the divergence (if k_red = 0. More...  
Public Member Functions inherited from MAST::FlutterSolverBase  
FlutterSolverBase ()  
defalut constructor More...  
virtual  ~FlutterSolverBase () 
void  attach_assembly (MAST::StructuralFluidInteractionAssembly &assembly) 
attaches the assembly object to this solver. More...  
void  attach_steady_solver (MAST::FlutterSolverBase::SteadySolver &solver) 
attaches the steady solution object More...  
virtual void  clear_assembly_object () 
clears the assembly object More...  
void  initialize (std::vector< libMesh::NumericVector< Real > *> &basis) 
initializes the data structres for a flutter solution. More...  
void  set_output_file (const std::string &nm) 
Protected Member Functions  
virtual std::unique_ptr< MAST::FlutterSolutionBase >  _analyze (const Real kr_ref, const MAST::FlutterSolutionBase *prev_sol=nullptr) 
performs an eigensolution at the specified reference value, and sort the roots based on the provided solution pointer. More...  
virtual std::pair< bool, MAST::FlutterSolutionBase * >  _bisection_search (const std::pair< MAST::FlutterSolutionBase *, MAST::FlutterSolutionBase *> &ref_sol_range, const unsigned int root_num, const Real g_tol, const unsigned int max_iters) 
bisection method search More...  
virtual void  _identify_crossover_points () 
identifies all crossover and divergence points from analyzed roots More...  
void  _initialize_matrices (Real kr, ComplexMatrixX &A, ComplexMatrixX &B) 
Assembles the reduced order system structural and aerodynmaic matrices for specified reduced freq kr . More...  
void  _initialize_matrix_sensitivity_for_kr (Real kr, ComplexMatrixX &A, ComplexMatrixX &B) 
Assembles the sensitivity of matrices wrt kr. More...  
void  _initialize_matrix_sensitivity_for_param (const MAST::FunctionBase &f, const libMesh::NumericVector< Real > &dXdp, Real kr, ComplexMatrixX &A, ComplexMatrixX &B) 
Assembles the reduced order system structural and aerodynmaic matrices for specified flight velocity U_inf . More...  
Protected Attributes  
MAST::Parameter *  _bref_param 
reference chord More...  
std::multimap< Real, MAST::FlutterRootCrossoverBase * >  _flutter_crossovers 
the map of flutter crossover points versus average kr of the two bounding roots More...  
std::map< Real, MAST::FlutterSolutionBase * >  _flutter_solutions 
map of kr sorted flutter solutions More...  
bool  _include_highest_kr_unstable 
flag allows check to see if the root started out as critical at the highest k value. More...  
MAST::Parameter *  _kr_param 
Parameter that define the reduced frequency. More...  
std::pair< Real, Real >  _kr_range 
range of reference values within which to find flutter roots More...  
unsigned int  _n_kr_divs 
number of division in the reference value range for initial scanning More...  
Real  _rho 
flight density More...  
Protected Attributes inherited from MAST::FlutterSolverBase  
MAST::StructuralFluidInteractionAssembly *  _assembly 
structural assembly that provides the assembly of the system matrices. More...  
std::vector< libMesh::NumericVector< Real > * > *  _basis_vectors 
basis vector used to define the reduced order model More...  
std::ofstream *  _output 
file to which the result will be written More...  
MAST::FlutterSolverBase::SteadySolver *  _steady_solver 
object provides the steady state solution. More...  
MAST::UGFlutterSolver::UGFlutterSolver  (  ) 
defalut constructor
Definition at line 35 of file ug_flutter_solver.cpp.

virtual 
Definition at line 47 of file ug_flutter_solver.cpp.

protectedvirtual 
performs an eigensolution at the specified reference value, and sort the roots based on the provided solution pointer.
If the pointer is nullptr, then no sorting is performed
Definition at line 486 of file ug_flutter_solver.cpp.

protectedvirtual 
bisection method search
Definition at line 407 of file ug_flutter_solver.cpp.

protectedvirtual 
identifies all crossover and divergence points from analyzed roots
Definition at line 692 of file ug_flutter_solver.cpp.

protected 
Assembles the reduced order system structural and aerodynmaic matrices for specified reduced freq kr
.
Definition at line 522 of file ug_flutter_solver.cpp.

protected 
Assembles the sensitivity of matrices wrt kr.
Definition at line 640 of file ug_flutter_solver.cpp.

protected 
Assembles the reduced order system structural and aerodynmaic matrices for specified flight velocity U_inf
.
Definition at line 578 of file ug_flutter_solver.cpp.

virtual 
Calculate the sensitivity of the flutter root with respect to the f
parameter.
If the base solution has a sensitivity with respect to the parameter, then that should be provided through dXdp
. The sensitivity solution also requires sensitivity of the eigenvalue wrt velocity, which is defined as a parameter. Hence, the sensitivity of the static solution is also required wrt the velocity parameter. If dXdV
is nullptr
, then zero value is assumed.
Definition at line 871 of file ug_flutter_solver.cpp.

virtual 
clears the solution and other data from this solver
Reimplemented from MAST::FlutterSolverBase.
Definition at line 56 of file ug_flutter_solver.cpp.

virtual 
clears the solutions stored from a previous analysis.
Definition at line 96 of file ug_flutter_solver.cpp.

virtual 
This method checks if the flutter root corresponding to the lowest velocity crossover has been calculated.
If not, then it attempts to find that root using an iterative approach
Definition at line 208 of file ug_flutter_solver.cpp.

virtual 
Looks through the list of flutter crossover points and iteratively zooms in to find the crossover point.
This should be called only after scan_for_roots() has been called. Potential crossover points are sorted with increasing velocity, and this method will attempt to identify the next critical root in the order.
Definition at line 163 of file ug_flutter_solver.cpp.
const MAST::FlutterRootBase & MAST::UGFlutterSolver::get_root  (  const unsigned int  n  )  const 
returns the n
th root in terms of ascending velocity that is found by the solver
Definition at line 137 of file ug_flutter_solver.cpp.
void MAST::UGFlutterSolver::initialize  (  MAST::Parameter &  kr_param, 
MAST::Parameter &  bref_param,  
Real  rho,  
Real  kr_lower,  
Real  kr_upper,  
unsigned int  n_kr_divs,  
std::vector< libMesh::NumericVector< Real > *> &  basis  
) 
initializes the data structres for a flutter solution.
Definition at line 73 of file ug_flutter_solver.cpp.

virtual 
finds the number of critical points already identified in the procedure.
Definition at line 118 of file ug_flutter_solver.cpp.

virtual 
Prints the crossover points output.
If no pointer to output is given then the output defined by set_output_file() is used.
Implements MAST::FlutterSolverBase.
Definition at line 379 of file ug_flutter_solver.cpp.

virtual 
Prints the sorted roots to the output
.
Implements MAST::FlutterSolverBase.
Definition at line 307 of file ug_flutter_solver.cpp.

virtual 
Scans for flutter roots in the analyzed points, and identified the divergence (if k_red = 0.
is specified) and flutter crossover points. The roots are organized in terms of increasing velocity.
Definition at line 262 of file ug_flutter_solver.cpp.

protected 
reference chord
Definition at line 227 of file ug_flutter_solver.h.

protected 
the map of flutter crossover points versus average kr of the two bounding roots
Definition at line 265 of file ug_flutter_solver.h.

protected 
map of kr sorted flutter solutions
Definition at line 252 of file ug_flutter_solver.h.

protected 
flag allows check to see if the root started out as critical at the highest k value.
Definition at line 259 of file ug_flutter_solver.h.

protected 
Parameter that define the reduced frequency.
Definition at line 221 of file ug_flutter_solver.h.
range of reference values within which to find flutter roots
Definition at line 239 of file ug_flutter_solver.h.

protected 
number of division in the reference value range for initial scanning
Definition at line 246 of file ug_flutter_solver.h.

protected 
flight density
Definition at line 233 of file ug_flutter_solver.h.