MAST
|
This class implements a system for quasi-static analysis of nonlinear structures. More...
#include <structural_system.h>
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 ¶m, 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, Real > | get_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 , 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 , 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::SlepcEigenSolver > | eigen_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... | |
This class implements a system for quasi-static analysis of nonlinear structures.
Definition at line 45 of file structural_system.h.
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.
|
virtual |
Definition at line 50 of file structural_system.cpp.
|
virtual |
Clear all the data structures associated with the system.
Reimplemented from MAST::NonlinearSystem.
Definition at line 72 of file structural_system.cpp.
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.
|
virtual |
Assembles & solves the nonlinear system R(x) = 0.
Reimplemented from MAST::NonlinearSystem.
Definition at line 85 of file structural_system.cpp.
|
protected |
value of beta that scales the external load vector in the constrain
Definition at line 95 of file structural_system.h.
|
protected |
value of update length
Definition at line 101 of file structural_system.h.
|
protected |
iteration counter
Definition at line 89 of file structural_system.h.
|
protected |
load parameter that is updated by this solution procedure
Definition at line 107 of file structural_system.h.
|
protected |
Definition at line 113 of file structural_system.h.
|
protected |
maximum and minimum values of the parameter
Definition at line 113 of file structural_system.h.