Assembles the system of equations for an eigenproblem of type  .
. 
If the
Definition at line 40 of file eigenproblem_assembly.h.
#include <eigenproblem_assembly.h>


| Public Member Functions | |
| EigenproblemAssembly () | |
| constructor associates the eigen system with this assembly object  More... | |
| virtual | ~EigenproblemAssembly () | 
| destructor resets the association with the eigen system from this assembly object  More... | |
| libMesh::SparseMatrix< Real > & | A_matrix () | 
| libMesh::SparseMatrix< Real > & | B_matrix () | 
| const libMesh::NumericVector< Real > & | base_sol (bool if_sens=false) const | 
| libMesh::NumericVector< Real > & | base_sol (bool if_sens=false) | 
| void | clear_base_solution (bool if_sens=false) | 
| Clears the pointer to the solution.  More... | |
| virtual void | eigenproblem_assemble (libMesh::SparseMatrix< Real > *A, libMesh::SparseMatrix< Real > *B) | 
| assembles the matrices for eigenproblem depending on the analysis type  More... | |
| virtual bool | eigenproblem_sensitivity_assemble (const MAST::FunctionBase &f, libMesh::SparseMatrix< Real > *sensitivity_A, libMesh::SparseMatrix< Real > *sensitivity_B) | 
| Assembly function.  More... | |
| bool | if_linearized_about_nonzero_solution () const | 
| 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... | |
|  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... | |
| 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 | attach_solution_function (MAST::MeshFieldFunction &f) | 
| tells the assembly object that this function is will need to be initialized before each residual evaluation  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... | |
| virtual void | calculate_output (const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output) | 
| calculates the value of quantity  .  More... | |
| virtual Real | calculate_output_adjoint_sensitivity (const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > &adj_sol, const MAST::FunctionBase &p, MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, const bool include_partial_sens=true) | 
| Evaluates the total sensitivity of outputwrtpusing the adjoint solution provided inadj_solfor a linearization about solutionX.  More... | |
| virtual void | calculate_output_adjoint_sensitivity_multiple_parameters_no_direct (const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > &adj_sol, const std::vector< const MAST::FunctionBase *> &p_vec, MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, std::vector< Real > &sens) | 
| Evaluates the dot product between adj_soland sensitivity of residual aboutXfor multiple parameter_vectorsp_vecand returns the results insens.  More... | |
| virtual void | calculate_output_derivative (const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output, libMesh::NumericVector< Real > &dq_dX) | 
| calculates  More... | |
| virtual void | calculate_output_direct_sensitivity (const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > *dXdp, bool if_localize_sol_sens, 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 void | clear_discipline_and_system () | 
| clears association with a system to this discipline  More... | |
| virtual void | clear_elem_operation_object () | 
| clears the association of thisobject with the assembly element operation object.  More... | |
| void | clear_elem_parameter_dependence_object () | 
| void | clear_solver_monitor () | 
| clears the monitor object  More... | |
| void | detach_solution_function () | 
| removes the attachment of the solution function  More... | |
| const MAST::PhysicsDisciplineBase & | discipline () const | 
| MAST::PhysicsDisciplineBase & | discipline () | 
| MAST::AssemblyElemOperations & | get_elem_ops () | 
| MAST::AssemblyBase::SolverMonitor * | get_solver_monitor () | 
| 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 libMesh::NumericVector< Real > &X, bool if_localize_sol, const MAST::FunctionBase &f, libMesh::NumericVector< Real > &sensitivity_rhs, bool close_vector=true) | 
| Assembly function.  More... | |
| virtual void | set_discipline_and_system (MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system) | 
| attaches a system to this discipline  More... | |
| virtual void | set_elem_operation_object (MAST::AssemblyElemOperations &elem_ops) | 
| attaches a element operation to this object, and associated thiswith the element operation object.  More... | |
| void | set_solver_monitor (MAST::AssemblyBase::SolverMonitor &monitor) | 
| attaches the solver monitor, which is a user provided routine that is called each time  More... | |
| const MAST::NonlinearSystem & | system () const | 
| MAST::NonlinearSystem & | system () | 
| MAST::SystemInitialization & | system_init () | 
| Protected Attributes | |
| 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::PhysicsDisciplineBase * | _discipline | 
| PhysicsDisciplineBase object for which this class is assembling.  More... | |
| MAST::AssemblyElemOperations * | _elem_ops | 
| provides assembly elem operations for use by this class  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... | |
| 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::SystemInitialization * | _system | 
| System for which this assembly is performed.  More... | |
| Additional Inherited Members | |
|  Public Attributes inherited from MAST::AssemblyBase | |
| bool | close_matrix | 
| flag to control the closing fo the Jacobian after assembly  More... | |
| std::set< unsigned int > | diagonal_elem_subdomain_id | 
| subdomain ids for which residuakl and Jacobian contributions will not be computed.  More... | |
| MAST::EigenproblemAssembly::EigenproblemAssembly | ( | ) | 
constructor associates the eigen system with this assembly object
Definition at line 38 of file eigenproblem_assembly.cpp.
| 
 | virtual | 
destructor resets the association with the eigen system from this assembly object
Definition at line 47 of file eigenproblem_assembly.cpp.
| libMesh::SparseMatrix<Real>& MAST::EigenproblemAssembly::A_matrix | ( | ) | 
| libMesh::SparseMatrix<Real>& MAST::EigenproblemAssembly::B_matrix | ( | ) | 
| const libMesh::NumericVector<Real>& MAST::EigenproblemAssembly::base_sol | ( | bool | if_sens = false | ) | const | 
if_sens is true) about which the Eigen problem was linearized. | libMesh::NumericVector<Real>& MAST::EigenproblemAssembly::base_sol | ( | bool | if_sens = false | ) | 
if_sens is true) about which the Eigen problem was linearized. | void MAST::EigenproblemAssembly::clear_base_solution | ( | bool | if_sens = false | ) | 
Clears the pointer to the solution.
The flag if_sens tells the method to clear the pointer the solution sensitivity vector. 
Definition at line 77 of file eigenproblem_assembly.cpp.
| 
 | virtual | 
assembles the matrices for eigenproblem depending on the analysis type
Reimplemented in MAST::LevelSetEigenproblemAssembly, and MAST::StructuralBucklingEigenproblemAssembly.
Definition at line 90 of file eigenproblem_assembly.cpp.
| 
 | virtual | 
Assembly function.
This function will be called to assemble the sensitivity of eigenproblem matrices. The method provides dA/dp and dB/dp for f parameter.
If the routine is not able to provide sensitivity for this parameter, then it should return false, and the system will attempt to use finite differencing.
Reimplemented in MAST::LevelSetEigenproblemAssembly.
Definition at line 185 of file eigenproblem_assembly.cpp.
| bool MAST::EigenproblemAssembly::if_linearized_about_nonzero_solution | ( | ) | const | 
| void MAST::EigenproblemAssembly::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.
The flag if_sens tells the method if sol is the sensitivity of the base solution for the current parameter being solved for 
Definition at line 54 of file eigenproblem_assembly.cpp.
| 
 | protected | 
base solution about which this eigenproblem is defined.
This vector stores the localized values necessary to perform element calculations.
Definition at line 143 of file eigenproblem_assembly.h.
| 
 | protected | 
sensitivity of base solution may be needed for sensitivity analysis.
This vector stores the localized values necessary to perform element calculations.
Definition at line 150 of file eigenproblem_assembly.h.