MAST
MAST::StructuralSystem Class Reference

This class implements a system for quasi-static analysis of nonlinear structures. More...

#include <structural_system.h>

Inheritance diagram for MAST::StructuralSystem:
Collaboration diagram for MAST::StructuralSystem:

Public Member Functions

 StructuralSystem (libMesh::EquationSystems &es, const std::string &name, const unsigned int number)
 Default constructor. More...
 
virtual ~StructuralSystem ()
 
void set_load_parameter (MAST::Parameter &param, Real min_p, Real max_p)
 sets the laod parameter for incrementing More...
 
virtual void clear () libmesh_override
 Clear all the data structures associated with the system. More...
 
virtual void solve (MAST::AssemblyElemOperations &elem_ops, MAST::AssemblyBase &assembly) libmesh_override
 Assembles & solves the nonlinear system R(x) = 0. More...
 
- Public Member Functions inherited from MAST::NonlinearSystem
 NonlinearSystem (libMesh::EquationSystems &es, const std::string &name, const unsigned int number)
 Default constructor. More...
 
virtual ~NonlinearSystem ()
 
MAST::NonlinearSystem::Operation operation ()
 
void set_operation (MAST::NonlinearSystem::Operation op)
 sets the current operation of the system More...
 
void set_init_B_matrix ()
 flag to also initialize the B matrix. More...
 
virtual void reinit () libmesh_override
 Reinitializes the member data fields associated with the system, so that, e.g., assemble() may be used. More...
 
virtual std::pair< unsigned int, Realget_linear_solve_parameters ()
 calls NonlinearImplicitSystem::set_solver_parameters() before accessing the values. More...
 
virtual void sensitivity_solve (MAST::AssemblyElemOperations &elem_ops, MAST::AssemblyBase &assembly, const MAST::FunctionBase &p, bool if_assemble_jacobian=true)
 Solves the sensitivity problem for the provided parameter. More...
 
virtual void adjoint_solve (MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, MAST::AssemblyBase &assembly, bool if_assemble_jacobian=true)
 solves the adjoint problem for the provided output function. More...
 
virtual void eigenproblem_solve (MAST::AssemblyElemOperations &elem_ops, MAST::EigenproblemAssembly &assembly)
 Assembles & solves the eigen system. More...
 
virtual void eigenproblem_sensitivity_solve (MAST::AssemblyElemOperations &elem_ops, MAST::EigenproblemAssembly &assembly, const MAST::FunctionBase &f, std::vector< Real > &sens, const std::vector< unsigned int > *indices=nullptr)
 Solves the sensitivity system, for the provided parameters. More...
 
virtual void get_eigenvalue (unsigned int i, Real &re, Real &im)
 gets the real and imaginary parts of the ith eigenvalue for the eigenproblem $ {\bf A} {\bf x} = \lambda {\bf B} {\bf x} $, and the associated eigenvector. More...
 
virtual void get_eigenpair (unsigned int i, Real &re, Real &im, libMesh::NumericVector< Real > &vec_re, libMesh::NumericVector< Real > *vec_im=nullptr)
 gets the real and imaginary parts of the ith eigenvalue for the eigenproblem $ {\bf A} {\bf x} = \lambda {\bf B} {\bf x} $, and the associated eigenvector. More...
 
void set_exchange_A_and_B (bool flag)
 sets the flag to exchange the A and B matrices for a generalized eigenvalue problem. More...
 
void set_n_requested_eigenvalues (unsigned int n)
 sets the number of eigenvalues requested More...
 
unsigned int get_n_converged_eigenvalues () const
 
unsigned int get_n_requested_eigenvalues () const
 
unsigned int get_n_iterations () const
 
void set_eigenproblem_type (libMesh::EigenProblemType ept)
 Sets the type of the current eigen problem. More...
 
libMesh::EigenProblemType get_eigenproblem_type () const
 
bool generalized () const
 
void initialize_condensed_dofs (MAST::PhysicsDisciplineBase &physics)
 Loop over the dofs on each processor to initialize the list of non-condensed dofs. More...
 
unsigned int n_global_non_condensed_dofs () const
 
void write_out_vector (libMesh::NumericVector< Real > &vec, const std::string &directory_name, const std::string &data_name, const bool write_binary_vectors)
 writes the specified vector with the specified name in a directory. More...
 
void read_in_vector (libMesh::NumericVector< Real > &vec, const std::string &directory_name, const std::string &data_name, const bool read_binary_vectors)
 reads the specified vector with the specified name in a directory. More...
 
void project_vector_without_dirichlet (libMesh::NumericVector< Real > &new_vector, libMesh::FunctionBase< Real > &f) const
 

Protected Attributes

unsigned int _iter
 iteration counter More...
 
Real _beta
 value of beta that scales the external load vector in the constrain More...
 
Real _dl
 value of update length More...
 
MAST::Parameter_load_param
 load parameter that is updated by this solution procedure More...
 
Real _min_p
 maximum and minimum values of the parameter More...
 
Real _max_p
 
- Protected Attributes inherited from MAST::NonlinearSystem
bool _initialize_B_matrix
 initialize the B matrix in addition to A, which might be needed for solution of complex system of equations using PC field split More...
 
bool _condensed_dofs_initialized
 A private flag to indicate whether the condensed dofs have been initialized. More...
 
unsigned int _n_requested_eigenpairs
 The number of requested eigenpairs. More...
 
bool _exchange_A_and_B
 flag to exchange the A and B matrices in the eigenproblem solution More...
 
unsigned int _n_converged_eigenpairs
 The number of converged eigenpairs. More...
 
unsigned int _n_iterations
 The number of iterations of the eigen solver algorithm. More...
 
bool _is_generalized_eigenproblem
 A boolean flag to indicate whether we are dealing with a generalized eigenvalue problem. More...
 
libMesh::EigenProblemType _eigen_problem_type
 The type of the eigenvalue problem. More...
 
MAST::NonlinearSystem::Operation _operation
 current operation of the system More...
 
std::vector< libMesh::dof_id_type > _local_non_condensed_dofs_vector
 Vector storing the local dof indices that will not be condensed. More...
 

Additional Inherited Members

- Public Types inherited from MAST::NonlinearSystem
enum  Operation {
  NONLINEAR_SOLVE, EIGENPROBLEM_SOLVE, FORWARD_SENSITIVITY_SOLVE, ADJOINT_SOLVE,
  NONE
}
 
- Public Attributes inherited from MAST::NonlinearSystem
libMesh::SparseMatrix< Real > * matrix_A
 The system matrix for standard eigenvalue problems. More...
 
libMesh::SparseMatrix< Real > * matrix_B
 A second system matrix for generalized eigenvalue problems. More...
 
std::unique_ptr< MAST::SlepcEigenSolvereigen_solver
 The EigenSolver, definig which interface, i.e solver package to use. More...
 
std::unique_ptr< libMesh::LinearSolver< Real > > linear_solver
 The LinearSolver for solution of the linear equations. More...
 
- Protected Member Functions inherited from MAST::NonlinearSystem
virtual void init_data () libmesh_override
 Initializes the member data fields associated with the system, so that, e.g., assemble() may be used. More...
 
void set_n_converged (unsigned int nconv)
 Set the _n_converged_eigenpairs member, useful for subclasses of EigenSystem. More...
 
void set_n_iterations (unsigned int its)
 Set the _n_iterations member, useful for subclasses of EigenSystem. More...
 

Detailed Description

This class implements a system for quasi-static analysis of nonlinear structures.

Definition at line 45 of file structural_system.h.

Constructor & Destructor Documentation

MAST::StructuralSystem::StructuralSystem ( libMesh::EquationSystems &  es,
const std::string &  name,
const unsigned int  number 
)

Default constructor.

Definition at line 35 of file structural_system.cpp.

MAST::StructuralSystem::~StructuralSystem ( )
virtual

Definition at line 50 of file structural_system.cpp.

Member Function Documentation

void MAST::StructuralSystem::clear ( )
virtual

Clear all the data structures associated with the system.

Reimplemented from MAST::NonlinearSystem.

Definition at line 72 of file structural_system.cpp.

Here is the call graph for this function:

void MAST::StructuralSystem::set_load_parameter ( MAST::Parameter param,
Real  min_p,
Real  max_p 
)

sets the laod parameter for incrementing

Definition at line 57 of file structural_system.cpp.

void MAST::StructuralSystem::solve ( MAST::AssemblyElemOperations elem_ops,
MAST::AssemblyBase assembly 
)
virtual

Assembles & solves the nonlinear system R(x) = 0.

Reimplemented from MAST::NonlinearSystem.

Definition at line 85 of file structural_system.cpp.

Here is the call graph for this function:

Member Data Documentation

Real MAST::StructuralSystem::_beta
protected

value of beta that scales the external load vector in the constrain

Definition at line 95 of file structural_system.h.

Real MAST::StructuralSystem::_dl
protected

value of update length

Definition at line 101 of file structural_system.h.

unsigned int MAST::StructuralSystem::_iter
protected

iteration counter

Definition at line 89 of file structural_system.h.

MAST::Parameter* MAST::StructuralSystem::_load_param
protected

load parameter that is updated by this solution procedure

Definition at line 107 of file structural_system.h.

Real MAST::StructuralSystem::_max_p
protected

Definition at line 113 of file structural_system.h.

Real MAST::StructuralSystem::_min_p
protected

maximum and minimum values of the parameter

Definition at line 113 of file structural_system.h.


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