LifeV
BDFSecondOrderDerivative.hpp
Go to the documentation of this file.
1 #ifndef BDFSECONDORDERDERIVATIVE_H
2 #define BDFSECONDORDERDERIVATIVE_H 1
3 
4 /*
5  * author: DAVIDE FORTI, davide.forti@epfl.ch
6  * Lightweighted class to Handle the time advancing scheme (based on BDF approximation of the time derivative and for the extrapolation).
7  * It can be used for first derivatives.
8  *
9  * The formulas implemented in the methods extrapolate and rhsContribution are taken from
10  * "Algebraic fractional-step schemes with spectral methods for the incompressible Navier–Stokes equations"
11  * by Paola Gervasio, Fausto Saleri and Alessandro Veneziani. (see pag. 3 for details)
12  */
13 
14 #include <lifev/core/LifeV.hpp>
15 
16 #include <lifev/core/array/VectorEpetra.hpp>
17 
18 namespace LifeV
19 {
20 
22 {
23 
25 
27 
28 public:
29 
30  // empty constructor
32 
33  // constructor taking as input the order of the Time Advancing BDF scheme
34  BDFSecondOrderDerivative(const UInt orderBDF);
35 
36  // empty destructor
38 
39  // setup of the class taking the order of the method
40  void setBDForder(const UInt order);
41 
42  // initialize the time handler class with initial data, need a vector of M_order vectorEpetra
43  void initialize(const std::vector<vector_Type> InitialData);
44 
45  // shift - to be used when a timestep is solved
46  void shift(const vector_Type newVector);
47 
48  // getter for the state
50  {
51  return M_states;
52  }
53 
54  // set the timestep
55  void setTimeStep(const Real dt);
56 
57  // used in the coupling of the velocities for FSI
58  void first_der_old_dts( vector_Type& vec_old_timesteps);
59 
60  // used in the computation of the residual
61  void second_der_old_dts( vector_Type& vec_old_timesteps);
62 
63  // coefficient in front of d_{n+1}
65 
66  // coefficient first derivative in front of d_{n+1}
68 
69 private:
70 
71  // order of the BDF scheme used
73 
74  // vector with the state variable at time n, n-1, .., n-(p-1)
76 
77  // variable that contains the bigger value between M_BDForder and M_maximumExtrapolationOrder
79 
80  // timestep
82 
83 };
84 
85 } // end namespace LifeV
86 
87 #endif
VectorEpetra - The Epetra Vector format Wrapper.
void initialize(const std::vector< vector_Type > InitialData)
void first_der_old_dts(vector_Type &vec_old_timesteps)
void updateInverseJacobian(const UInt &iQuadPt)
void second_der_old_dts(vector_Type &vec_old_timesteps)
std::vector< vector_Type > state()
void shift(const vector_Type newVector)
double Real
Generic real data.
Definition: LifeV.hpp:175
std::shared_ptr< vector_Type > vectorPtr_Type
uint32_type UInt
generic unsigned integer (used mainly for addressing)
Definition: LifeV.hpp:191