MAST
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
time_domain_flutter_root.cpp
Go to the documentation of this file.
1
/*
2
* MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3
* Copyright (C) 2013-2019 Manav Bhatia
4
*
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
21
// MAST includes
22
#include "
aeroelasticity/time_domain_flutter_root.h
"
23
24
25
MAST::TimeDomainFlutterRoot::TimeDomainFlutterRoot
():
26
MAST
::
FlutterRootBase
()
27
{ }
28
29
30
31
MAST::TimeDomainFlutterRoot::TimeDomainFlutterRoot
(
const
TimeDomainFlutterRoot
& f):
32
MAST
::
FlutterRootBase
(f)
33
{ }
34
35
36
37
void
38
MAST::TimeDomainFlutterRoot::init
(
const
Real
v_ref_val,
39
const
Complex
num,
40
const
Complex
den,
41
const
RealMatrixX
& Bmat,
42
const
ComplexVectorX
& evec_right,
43
const
ComplexVectorX
& evec_left) {
44
45
if
(std::abs(den) > 0.) {
46
47
root
= num/den;
48
V
= v_ref_val;
49
omega
= std::imag(
root
);
50
}
51
52
// calculate the modal participation vector
53
const
unsigned
int
54
nvals = (int)Bmat.rows();
55
eig_vec_right
= evec_right;
56
eig_vec_left
= evec_left;
57
ComplexVectorX
58
k_q = Bmat * evec_right;
59
modal_participation
.resize(nvals, 1);
60
61
for
(
unsigned
int
i=0; i<nvals; i++)
62
modal_participation
(i) = std::abs(std::conj(evec_right(i)) * k_q(i));
63
64
modal_participation
*= (1./
modal_participation
.sum());
65
}
66
MAST::FlutterRootBase::omega
Real omega
Definition:
flutter_root_base.h:49
MAST::FlutterRootBase::eig_vec_left
ComplexVectorX eig_vec_left
Definition:
flutter_root_base.h:56
MAST::TimeDomainFlutterRoot::init
void init(const Real v_ref_val, const Complex num, const Complex den, const RealMatrixX &Bmat, const ComplexVectorX &evec_right, const ComplexVectorX &evec_left)
initializes the data
Definition:
time_domain_flutter_root.cpp:38
ComplexVectorX
Matrix< Complex, Dynamic, 1 > ComplexVectorX
Definition:
mast_data_types.h:37
MAST::FlutterRootBase::V
Real V
Definition:
flutter_root_base.h:49
time_domain_flutter_root.h
MAST::FlutterRootBase::root
Complex root
Definition:
flutter_root_base.h:51
Real
libMesh::Real Real
Definition:
mast_data_types.h:32
MAST::TimeDomainFlutterRoot
Definition:
time_domain_flutter_root.h:29
Complex
libMesh::Complex Complex
Definition:
mast_data_types.h:33
MAST::TimeDomainFlutterRoot::TimeDomainFlutterRoot
TimeDomainFlutterRoot()
default constructor
Definition:
time_domain_flutter_root.cpp:25
RealMatrixX
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Definition:
mast_data_types.h:44
MAST::FlutterRootBase::modal_participation
RealVectorX modal_participation
Definition:
flutter_root_base.h:58
MAST::FlutterRootBase
Definition:
flutter_root_base.h:29
MAST::FlutterRootBase::eig_vec_right
ComplexVectorX eig_vec_right
right and left eigenvevtors
Definition:
flutter_root_base.h:56
MAST
Definition:
flutter_root_base.h:27
src
aeroelasticity
time_domain_flutter_root.cpp
Generated by
1.8.11