20 #ifndef __mast__stabilized_first_order_newmark_transient_sensitivity_solver__ 21 #define __mast__stabilized_first_order_newmark_transient_sensitivity_solver__ 30 class OutputAssemblyElemOperations;
81 const std::vector<libMesh::NumericVector<Real>*>& sols);
86 const std::vector<libMesh::NumericVector<Real>*>& sols,
87 std::vector<RealVectorX>& local_sols);
91 const libMesh::NumericVector<Real>& sol);
108 const libMesh::NumericVector<Real>& sol);
112 const libMesh::NumericVector<Real>& sol){
118 const libMesh::NumericVector<Real>& sol){
124 const libMesh::NumericVector<Real>& sol){
130 const libMesh::NumericVector<Real>& sol){
159 (
const std::vector<libMesh::dof_id_type>& dof_indices,
160 const std::vector<libMesh::NumericVector<Real>*>& sols) {
166 const libMesh::NumericVector<Real>& sol1);
169 libMesh::SparseMatrix<Real>& B);
183 #endif // __mast__stabilized_first_order_newmark_transient_sensitivity_solver__
virtual void elem_topology_sensitivity_calculations(const MAST::FunctionBase &f, const MAST::FieldFunction< RealVectorX > &vel, RealVectorX &vec)
performs the element topology sensitivity calculations over elem, and returns the element residual se...
virtual ~StabilizedFirstOrderNewmarkTransientSensitivitySolver()
void set_nolinear_solution_location(std::string &file_root, std::string &dir)
sets the directory where the nonlinear solutions are stored.
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &vec)
performs the element sensitivity calculations over elem, and returns the element residual sensitivity...
virtual void extract_element_sensitivity_data(const std::vector< libMesh::dof_id_type > &dof_indices, const std::vector< libMesh::NumericVector< Real > * > &sols, std::vector< RealVectorX > &local_sols)
void set_eigenvalue_stabilization(bool f)
sets if the eigenvalue-based stabilization will be used.
virtual void elem_linearized_jacobian_solution_product(RealVectorX &vec)
performs the element calculations over elem, and returns the element vector quantity in vec...
This provides the base class for definitin of element level contribution of output quantity in an ana...
std::string _sol_name_root
bool _use_eigenvalue_stabilization
virtual void elem_shape_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &vec)
performs the element shape sensitivity calculations over elem, and returns the element residual sensi...
virtual void sensitivity_solve(MAST::AssemblyBase &assembly, const MAST::FunctionBase &f)
solvers the current time step for sensitivity wrt f
virtual void update_sensitivity_velocity(libMesh::NumericVector< Real > &vec, const libMesh::NumericVector< Real > &sol)
update the transient sensitivity velocity based on the current sensitivity solution ...
Real _compute_eig_amplification_factor(libMesh::SparseMatrix< Real > &A, libMesh::SparseMatrix< Real > &B)
Matrix< Real, Dynamic, Dynamic > RealMatrixX
virtual void set_element_data(const std::vector< libMesh::dof_id_type > &dof_indices, const std::vector< libMesh::NumericVector< Real > * > &sols)
Real max_amp
parameter used by this solver.
Matrix< Real, Dynamic, 1 > RealVectorX
virtual void elem_sensitivity_contribution_previous_timestep(const std::vector< RealVectorX > &prev_sols, RealVectorX &vec)
Real _compute_norm_amplification_factor(const libMesh::NumericVector< Real > &sol0, const libMesh::NumericVector< Real > &sol1)
virtual void update_acceleration(libMesh::NumericVector< Real > &acc, const libMesh::NumericVector< Real > &sol)
update the transient acceleration based on the current solution
virtual void set_element_perturbed_data(const std::vector< libMesh::dof_id_type > &dof_indices, const std::vector< libMesh::NumericVector< Real > * > &sols)
This solver implements the stabilized sensitivity analysis solver for chaotic systems where the linea...
virtual void update_sensitivity_acceleration(libMesh::NumericVector< Real > &acc, const libMesh::NumericVector< Real > &sol)
update the transient sensitivity acceleration based on the current sensitivity solution ...
virtual void update_delta_acceleration(libMesh::NumericVector< Real > &acc, const libMesh::NumericVector< Real > &sol)
update the perturbation in transient acceleration based on the current perturbed solution ...
unsigned int max_index
index of solution that is used for current linearization
virtual void elem_calculations(bool if_jac, RealVectorX &vec, RealMatrixX &mat)
performs the element calculations over elem, and returns the element vector and matrix quantities in ...
virtual void update_delta_velocity(libMesh::NumericVector< Real > &vel, const libMesh::NumericVector< Real > &sol)
update the perturbation in transient velocity based on the current perturbed solution ...
virtual Real evaluate_q_sens_for_previous_interval(MAST::AssemblyBase &assembly, const MAST::FunctionBase &p, MAST::OutputAssemblyElemOperations &output)
StabilizedFirstOrderNewmarkTransientSensitivitySolver()
virtual void update_velocity(libMesh::NumericVector< Real > &vel, const libMesh::NumericVector< Real > &sol)
update the transient velocity based on the current solution
virtual void elem_second_derivative_dot_solution_assembly(RealMatrixX &mat)
calculates over elem, and returns the matrix in vec .