MAST
MAST::FSIGeneralizedAeroForceAssembly Class Reference

#include <fsi_generalized_aero_force_assembly.h>

Inheritance diagram for MAST::FSIGeneralizedAeroForceAssembly:
Collaboration diagram for MAST::FSIGeneralizedAeroForceAssembly:

Public Member Functions

 FSIGeneralizedAeroForceAssembly ()
 default constructor More...
 
 ~FSIGeneralizedAeroForceAssembly ()
 destructor More...
 
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. More...
 
virtual void clear_discipline_and_system ()
 clears association with a system to this discipline, and vice-a-versa More...
 
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. More...
 
- Public Member Functions inherited from MAST::StructuralFluidInteractionAssembly
 StructuralFluidInteractionAssembly ()
 constructor associates this assembly object with the system More...
 
virtual ~StructuralFluidInteractionAssembly ()
 destructor resets the association of this assembly object with the system More...
 
void set_base_solution (const libMesh::NumericVector< Real > &sol, bool if_sens=false)
 if the eigenproblem is defined about a non-zero base solution, then this method provides the object with the base solution. More...
 
void clear_base_solution (bool if_sens=false)
 Clears the pointer to base solution. More...
 
bool if_linearized_about_nonzero_solution () const
 
const libMesh::NumericVector< Real > & base_sol (bool if_sens=false) const
 
virtual void assemble_reduced_order_quantity (std::vector< libMesh::NumericVector< Real > * > &basis, std::map< MAST::StructuralQuantityType, RealMatrixX * > &mat_qty_map)
 calculates the reduced order matrix given the basis provided in basis. More...
 
virtual void assemble_reduced_order_quantity_sensitivity (const MAST::FunctionBase &f, std::vector< libMesh::NumericVector< Real > * > &basis, std::map< MAST::StructuralQuantityType, RealMatrixX * > &mat_qty_map)
 calculates the sensitivity of reduced order matrix given the basis provided in basis. More...
 
- Public Member Functions inherited from MAST::AssemblyBase
 AssemblyBase ()
 constructor takes a reference to the discipline that provides the boundary conditions, volume loads, properties, etc. More...
 
virtual ~AssemblyBase ()
 virtual destructor More...
 
const MAST::PhysicsDisciplineBasediscipline () const
 
MAST::PhysicsDisciplineBasediscipline ()
 
MAST::AssemblyElemOperationsget_elem_ops ()
 
virtual void set_discipline_and_system (MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system)
 attaches a system to this discipline More...
 
void attach_elem_parameter_dependence_object (MAST::AssemblyBase::ElemParameterDependence &dep)
 This object, if provided by user, will be used to reduce unnecessary computations in sensitivity analysis assembly operations. More...
 
void clear_elem_parameter_dependence_object ()
 
virtual void set_elem_operation_object (MAST::AssemblyElemOperations &elem_ops)
 attaches a element operation to this object, and associated this with the element operation object. More...
 
virtual void clear_elem_operation_object ()
 clears the association of this object with the assembly element operation object. More...
 
const MAST::NonlinearSystemsystem () const
 
MAST::NonlinearSystemsystem ()
 
MAST::SystemInitializationsystem_init ()
 
void set_solver_monitor (MAST::AssemblyBase::SolverMonitor &monitor)
 attaches the solver monitor, which is a user provided routine that is called each time More...
 
MAST::AssemblyBase::SolverMonitorget_solver_monitor ()
 
void clear_solver_monitor ()
 clears the monitor object More...
 
void attach_solution_function (MAST::MeshFieldFunction &f)
 tells the assembly object that this function is will need to be initialized before each residual evaluation More...
 
void detach_solution_function ()
 removes the attachment of the solution function More...
 
virtual void residual_and_jacobian (const libMesh::NumericVector< Real > &X, libMesh::NumericVector< Real > *R, libMesh::SparseMatrix< Real > *J, libMesh::NonlinearImplicitSystem &S)
 function that assembles the matrices and vectors quantities for nonlinear solution More...
 
virtual bool sensitivity_assemble (const MAST::FunctionBase &f, libMesh::NumericVector< Real > &sensitivity_rhs)
 Assembly function. More...
 
virtual void calculate_output (const libMesh::NumericVector< Real > &X, MAST::OutputAssemblyElemOperations &output)
 calculates the value of quantity $ q(X,p) $. More...
 
virtual void calculate_output_derivative (const libMesh::NumericVector< Real > &X, MAST::OutputAssemblyElemOperations &output, libMesh::NumericVector< Real > &dq_dX)
 calculates $ \frac{\partial q(X, p)}{\partial X} $ More...
 
virtual void calculate_output_direct_sensitivity (const libMesh::NumericVector< Real > &X, const libMesh::NumericVector< Real > *dXdp, const MAST::FunctionBase &p, MAST::OutputAssemblyElemOperations &output)
 evaluates the sensitivity of the outputs in the attached discipline with respect to the parametrs in params. More...
 
virtual Real calculate_output_adjoint_sensitivity (const libMesh::NumericVector< Real > &X, const libMesh::NumericVector< Real > &dq_dX, const MAST::FunctionBase &p, MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, const bool include_partial_sens=true)
 Evaluates the total sensitivity of output wrt p using the adjoint solution provided in dq_dX for a linearization about solution X. More...
 
std::unique_ptr< libMesh::NumericVector< Real > > build_localized_vector (const libMesh::System &sys, const libMesh::NumericVector< Real > &global) const
 localizes the parallel vector so that the local copy stores all values necessary for calculation of the element quantities More...
 

Protected Attributes

MAST::ComplexSolverBase_fluid_complex_solver
 complex solver More...
 
MAST::ComplexAssemblyBase_fluid_complex_assembly
 
MAST::PressureFunction_pressure_function
 pressure function boundary condition for structures More...
 
MAST::FrequencyDomainPressureFunction_freq_domain_pressure_function
 small disturbance pressure function boundary condition for structures More...
 
MAST::ComplexMeshFieldFunction_complex_displ
 flexible surface motion for fluid and structure More...
 
- Protected Attributes inherited from MAST::StructuralFluidInteractionAssembly
const libMesh::NumericVector< Real > * _base_sol
 base solution about which this eigenproblem is defined. More...
 
const libMesh::NumericVector< Real > * _base_sol_sensitivity
 sensitivity of base solution may be needed for sensitivity analysis. More...
 
- Protected Attributes inherited from MAST::AssemblyBase
MAST::AssemblyElemOperations_elem_ops
 provides assembly elem operations for use by this class More...
 
MAST::PhysicsDisciplineBase_discipline
 PhysicsDisciplineBase object for which this class is assembling. More...
 
MAST::SystemInitialization_system
 System for which this assembly is performed. More...
 
MAST::MeshFieldFunction_sol_function
 system solution that will be initialized before each solution More...
 
MAST::AssemblyBase::SolverMonitor_solver_monitor
 User provided solver monitor is attached to the linear nonlinear solvers, if provided. More...
 
MAST::AssemblyBase::ElemParameterDependence_param_dependence
 If provided by user, this object is used by sensitiivty analysis to check for whether or the current design parameter influences an element. More...
 

Additional Inherited Members

- Public Attributes inherited from MAST::AssemblyBase
bool close_matrix
 flag to control the closing fo the Jacobian after assembly More...
 

Detailed Description

Definition at line 42 of file fsi_generalized_aero_force_assembly.h.

Constructor & Destructor Documentation

MAST::FSIGeneralizedAeroForceAssembly::FSIGeneralizedAeroForceAssembly ( )

default constructor

Definition at line 52 of file fsi_generalized_aero_force_assembly.cpp.

MAST::FSIGeneralizedAeroForceAssembly::~FSIGeneralizedAeroForceAssembly ( )

destructor

Definition at line 66 of file fsi_generalized_aero_force_assembly.cpp.

Here is the call graph for this function:

Member Function Documentation

void MAST::FSIGeneralizedAeroForceAssembly::assemble_generalized_aerodynamic_force_matrix ( std::vector< libMesh::NumericVector< Real > * > &  basis,
ComplexMatrixX mat,
MAST::Parameter p = nullptr 
)
virtual

calculates the reduced order matrix given the basis provided in basis.

X is the steady state solution about which the quantity is calculated.

Definition at line 122 of file fsi_generalized_aero_force_assembly.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void MAST::FSIGeneralizedAeroForceAssembly::clear_discipline_and_system ( )
virtual

clears association with a system to this discipline, and vice-a-versa

Reimplemented from MAST::StructuralFluidInteractionAssembly.

Definition at line 101 of file fsi_generalized_aero_force_assembly.cpp.

Here is the call graph for this function:

void MAST::FSIGeneralizedAeroForceAssembly::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.

The structural and fluid communicator objects should provide valid MPI communicators on ranks that store the respective disciplinary data structures. complex_solver and pressure_function should be non-null pointers only on nodes with a valid fluid communicator. motion_func should be a non-null pointer only when structural_comm is a valid communicator.

Definition at line 76 of file fsi_generalized_aero_force_assembly.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

MAST::ComplexMeshFieldFunction* MAST::FSIGeneralizedAeroForceAssembly::_complex_displ
protected

flexible surface motion for fluid and structure

Definition at line 121 of file fsi_generalized_aero_force_assembly.h.

MAST::ComplexAssemblyBase* MAST::FSIGeneralizedAeroForceAssembly::_fluid_complex_assembly
protected

Definition at line 103 of file fsi_generalized_aero_force_assembly.h.

MAST::ComplexSolverBase* MAST::FSIGeneralizedAeroForceAssembly::_fluid_complex_solver
protected

complex solver

Definition at line 101 of file fsi_generalized_aero_force_assembly.h.

MAST::FrequencyDomainPressureFunction* MAST::FSIGeneralizedAeroForceAssembly::_freq_domain_pressure_function
protected

small disturbance pressure function boundary condition for structures

Definition at line 115 of file fsi_generalized_aero_force_assembly.h.

MAST::PressureFunction* MAST::FSIGeneralizedAeroForceAssembly::_pressure_function
protected

pressure function boundary condition for structures

Definition at line 108 of file fsi_generalized_aero_force_assembly.h.


The documentation for this class was generated from the following files: