libMesh
second_order_unsteady_solver.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2017 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 #ifndef LIBMESH_SECOND_ORDER_UNSTEADY_SOLVER_H
19 #define LIBMESH_SECOND_ORDER_UNSTEADY_SOLVER_H
20 
21 #include "libmesh/unsteady_solver.h"
22 
23 namespace libMesh
24 {
39 {
40 public:
45  explicit
47 
51  virtual ~SecondOrderUnsteadySolver ();
52 
53  virtual unsigned int time_order() const libmesh_override
54  { return 2; }
55 
60  virtual void init () libmesh_override;
61 
67  virtual void init_data () libmesh_override;
68 
73  virtual void reinit () libmesh_override;
74 
79  virtual void retrieve_timestep () libmesh_override;
80 
89 
94  Number old_solution_rate (const dof_id_type global_dof_number) const;
95 
100  Number old_solution_accel (const dof_id_type global_dof_number) const;
101 
102 protected:
103 
108 
113 };
114 
115 } // end namespace libMesh
116 
117 # endif // LIBMESH_SECOND_ORDER_UNSTEADY_SOLVER_H
virtual unsigned int time_order() const libmesh_override
const class libmesh_nullptr_t libmesh_nullptr
void project_initial_rate(FunctionBase< Number > *f, FunctionBase< Gradient > *g=libmesh_nullptr)
Specify non-zero initial velocity.
The libMesh namespace provides an interface to certain functionality in the library.
Number old_solution_accel(const dof_id_type global_dof_number) const
SecondOrderUnsteadySolver(sys_type &s)
Constructor.
std::unique_ptr< T > UniquePtr
Definition: auto_ptr.h:46
virtual void init_data() libmesh_override
The data initialization function.
This class provides a specific system class.
Definition: diff_system.h:53
UniquePtr< NumericVector< Number > > _old_local_solution_rate
Serial vector of previous time step velocity .
Generic class from which second order UnsteadySolvers should subclass.
virtual void reinit() libmesh_override
The reinitialization function.
virtual void init() libmesh_override
The initialization function.
UniquePtr< NumericVector< Number > > _old_local_solution_accel
Serial vector of previous time step acceleration .
This is a generic class that defines a solver to handle time integration of DifferentiableSystems.
Number old_solution_rate(const dof_id_type global_dof_number) const
virtual void retrieve_timestep() libmesh_override
This method retrieves all the stored solutions at the current system.time.
uint8_t dof_id_type
Definition: id_types.h:64