23 #include "libmesh/transient_system.h"
24 #include "libmesh/explicit_system.h"
25 #include "libmesh/linear_implicit_system.h"
26 #include "libmesh/nonlinear_implicit_system.h"
27 #include "libmesh/dof_map.h"
28 #include "libmesh/numeric_vector.h"
29 #include "libmesh/rb_construction.h"
30 #include "libmesh/eigen_system.h"
40 const std::string & name_in,
41 const unsigned int number_in) :
43 Base (es, name_in, number_in)
45 this->add_old_vectors();
58 old_local_solution.release();
59 older_local_solution.release();
77 old_local_solution.release();
78 older_local_solution.release();
81 this->add_old_vectors();
92 const std::vector<dof_id_type> & send_list = this->get_dof_map().get_send_list ();
94 const dof_id_type first_local_dof = Base::get_dof_map().first_dof();
95 const dof_id_type end_local_dof = Base::get_dof_map().end_dof();
98 libmesh_assert_greater_equal (end_local_dof, first_local_dof);
99 libmesh_assert_greater_equal (older_local_solution->size(), send_list.size());
100 libmesh_assert_greater_equal (old_local_solution->size(), send_list.size());
109 older_local_solution->localize (first_local_dof,
113 old_local_solution->localize (first_local_dof,
121 template <
class Base>
125 libmesh_assert_less (global_dof_number, this->get_dof_map().n_dofs());
126 libmesh_assert_less (global_dof_number, old_local_solution->size());
128 return (*old_local_solution)(global_dof_number);
133 template <
class Base>
137 libmesh_assert_less (global_dof_number, this->get_dof_map().n_dofs());
138 libmesh_assert_less (global_dof_number, older_local_solution->size());
140 return (*older_local_solution)(global_dof_number);
145 template <
class Base>
148 #ifdef LIBMESH_ENABLE_GHOSTED
150 std::unique_ptr<NumericVector<Number>>
151 (&(this->add_vector(
"_transient_old_local_solution",
true,
GHOSTED)));
152 older_local_solution =
153 std::unique_ptr<NumericVector<Number>>
154 (&(this->add_vector(
"_transient_older_local_solution",
true,
GHOSTED)));
157 std::unique_ptr<NumericVector<Number>>
158 (&(this->add_vector(
"_transient_old_local_solution",
true,
SERIAL)));
159 older_local_solution =
160 std::unique_ptr<NumericVector<Number>>
161 (&(this->add_vector(
"_transient_older_local_solution",
true,
SERIAL)));
172 #ifdef LIBMESH_HAVE_SLEPC