MAST
fsi_generalized_aero_force_assembly.h
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 #ifndef __mast__fsi_generalized_aerodynamic_force_matrix_driver_h__
21 #define __mast__fsi_generalized_aerodynamic_force_matrix_driver_h__
22 
23 
24 // MAST includes
26 
27 
28 
29 namespace MAST {
30 
31  // forward declerations
32  class ComplexSolverBase;
33  class ComplexAssemblyBase;
34  class ComplexAssemblyElemOperations;
35  class PressureFunction;
36  class FrequencyDomainPressureFunction;
37  class ComplexMeshFieldFunction;
38  class StructuralFluidInteractionAssembly;
39  class FluidStructureAssemblyElemOperations;
40  class Parameter;
41 
44 
45  public:
46 
51 
52 
57 
58 
70  MAST::ComplexSolverBase& complex_solver,
71  MAST::ComplexAssemblyBase& complex_assembly,
73  MAST::PressureFunction& pressure_func,
74  MAST::FrequencyDomainPressureFunction& freq_pressure_func,
75  MAST::ComplexMeshFieldFunction& displ_func);
76 
77 
81  virtual void
83 
84 
90  virtual void
92  (std::vector<libMesh::NumericVector<Real>*>& basis,
93  ComplexMatrixX& mat,
94  MAST::Parameter* p = nullptr);
95 
96  protected:
97 
102 
104 
109 
110 
116 
117 
122  };
123 }
124 
125 
126 #endif // __mast__fsi_generalized_aerodynamic_force_matrix_driver_h__
127 
MAST::FrequencyDomainPressureFunction * _freq_domain_pressure_function
small disturbance pressure function boundary condition for structures
MAST::PressureFunction * _pressure_function
pressure function boundary condition for structures
void init(MAST::FluidStructureAssemblyElemOperations &fsi_elem_ops, MAST::ComplexSolverBase &complex_solver, MAST::ComplexAssemblyBase &complex_assembly, MAST::ComplexAssemblyElemOperations &fluid_elem_ops, MAST::PressureFunction &pressure_func, MAST::FrequencyDomainPressureFunction &freq_pressure_func, MAST::ComplexMeshFieldFunction &displ_func)
initializes for the given fluid and structural components.
uses a Gauss-Siedel method to solve the complex system of equations for a system. ...
This is a scalar function whose value can be changed and one that can be used as a design variable in...
Definition: parameter.h:35
MAST::ComplexMeshFieldFunction * _complex_displ
flexible surface motion for fluid and structure
Matrix< Complex, Dynamic, Dynamic > ComplexMatrixX
virtual void assemble_generalized_aerodynamic_force_matrix(std::vector< libMesh::NumericVector< Real > * > &basis, ComplexMatrixX &mat, MAST::Parameter *p=nullptr)
calculates the reduced order matrix given the basis provided in basis.
This provides a wrapper FieldFunction compatible class that interpolates the solution using libMesh&#39;s...
virtual void clear_discipline_and_system()
clears association with a system to this discipline, and vice-a-versa
MAST::ComplexSolverBase * _fluid_complex_solver
complex solver