20 #ifndef __mast__first_order_newmark_transient_solver__ 21 #define __mast__first_order_newmark_transient_solver__ 61 class FirstOrderNewmarkTransientSolver:
64 FirstOrderNewmarkTransientSolver();
66 virtual ~FirstOrderNewmarkTransientSolver();
77 virtual void update_velocity(libMesh::NumericVector<Real>& vel,
78 const libMesh::NumericVector<Real>& sol);
83 virtual void update_acceleration(libMesh::NumericVector<Real>& acc,
84 const libMesh::NumericVector<Real>& sol) {
93 virtual void update_sensitivity_velocity(libMesh::NumericVector<Real>& vel,
94 const libMesh::NumericVector<Real>& sol);
100 virtual void update_sensitivity_acceleration(libMesh::NumericVector<Real>& acc,
101 const libMesh::NumericVector<Real>& sol) {
111 update_delta_velocity(libMesh::NumericVector<Real>& vel,
112 const libMesh::NumericVector<Real>& sol);
119 update_delta_acceleration(libMesh::NumericVector<Real>& acc,
120 const libMesh::NumericVector<Real>& sol) {
129 set_element_data(
const std::vector<libMesh::dof_id_type>& dof_indices,
130 const std::vector<libMesh::NumericVector<Real>*>& sols);
137 extract_element_sensitivity_data(
const std::vector<libMesh::dof_id_type>& dof_indices,
138 const std::vector<libMesh::NumericVector<Real>*>& sols,
139 std::vector<RealVectorX>& local_sols);
145 set_element_perturbed_data
146 (
const std::vector<libMesh::dof_id_type>& dof_indices,
147 const std::vector<libMesh::NumericVector<Real>*>& sols);
157 elem_calculations(
bool if_jac,
210 libmesh_assert(
false);
219 #endif // __mast__first_order_newmark_transient_solver__
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 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 void elem_sensitivity_contribution_previous_timestep(const std::vector< RealVectorX > &prev_sols, RealVectorX &vec)
computes the contribution for this element from previous time step
virtual void elem_second_derivative_dot_solution_assembly(RealMatrixX &mat)
calculates over elem, and returns the matrix in vec .
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Matrix< Real, Dynamic, 1 > RealVectorX
virtual void elem_linearized_jacobian_solution_product(RealVectorX &vec)
This class implements the Newmark solver for solution of a first-order ODE.
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...