Time evolution (*** under development ***). More...
#include <evolution.h>
Public Member Functions | |
| virtual | ~Evolution () |
| Destructor. | |
| virtual void | update (const TyT &new_value, int j, double time_j)=0 |
| Sets a new value at a given time step. | |
| void | downdate (int j) |
| Suppresses a stored value. | |
| virtual void | operator= (const Evolution< TyT > &t_in) |
| Assignement. | |
| const TyT & | operator[] (int j) const |
| Returns the value at time step j. | |
| double | get_time (int j) const |
| Returns the time t at time step j. | |
| TyT | operator() (double t, int order=2) const |
Returns the value at time t, with a scheme of order order. | |
| int | get_size () const |
Returns the member size. | |
| int | j_min () const |
Returns the smaller time step j stored in *this. | |
| int | j_max () const |
Returns the larger time step j stored in *this. | |
| bool | is_known (int j) const |
| Checks whether the value a given time step has been set. | |
| TyT | time_derive (int j, int n=2) const |
Computes the time derivative at time step j by means of a n-th order scheme, from the values at steps j, j-1, . | |
| void | save (const char *filename) const |
Saves *this in a formatted file. | |
Protected Member Functions | |
| Evolution (const TyT &initial_value, int initial_j, double initial_time, int initial_size) | |
| Constructor from some initial value. | |
| Evolution (int initial_size) | |
| Constructor without any initial value. | |
| Evolution (const Evolution< TyT > &t_in) | |
| Copy constructor. | |
| int | position (int j) const |
Gives the position in the arrays step, the_time and val corresponding to the time step j. | |
| int | next_position (int i) const |
| Returns the next valid position (returns -1 if none is found). | |
| int | previous_position (int i) const |
| Returns the previous valid position (returns -1 if none is found). | |
Protected Attributes | |
| int | size |
| Maximum number of stored time steps. | |
| int * | step |
Array of time step indices (size = size). | |
| double * | the_time |
Array of values of t at the various time steps (size = size). | |
| TyT ** | val |
Array of pointers onto the values (size = size). | |
| int | pos_jtop |
Position in the arrays step, the_time and val of the most evolved time step. | |
Time evolution (*** under development ***).
()
The template class Evolution has been devised to store and manipulate evolving quantities of any type, for instance TyT = double or TyT = Scalar.
Evolution is an abstract base class for classes Evolution_full and Evolution_std.
Definition at line 116 of file evolution.h.
| Evolution< TyT >::Evolution | ( | const TyT & | initial_value, | |
| int | initial_j, | |||
| double | initial_time, | |||
| int | initial_size | |||
| ) | [inline, protected] |
Constructor from some initial value.
Definition at line 123 of file evolution.C.
References Evolution< TyT >::size, Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
Constructor without any initial value.
Definition at line 150 of file evolution.C.
References Evolution< TyT >::size, Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
| Evolution< TyT >::Evolution | ( | const Evolution< TyT > & | t_in | ) | [inline, protected] |
Copy constructor.
Definition at line 174 of file evolution.C.
References Evolution< TyT >::size, Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
Destructor.
Definition at line 210 of file evolution.C.
References Evolution< TyT >::size, Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
| void Evolution< TyT >::downdate | ( | int | j | ) | [inline] |
Suppresses a stored value.
Definition at line 240 of file evolution.C.
References Evolution< TyT >::is_known(), Evolution< TyT >::pos_jtop, Evolution< TyT >::position(), Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
| int Evolution< TyT >::get_size | ( | ) | const [inline] |
Returns the member size.
Definition at line 201 of file evolution.h.
| double Evolution< TyT >::get_time | ( | int | j | ) | const [inline] |
Returns the time t at time step j.
Definition at line 195 of file evolution.h.
| bool Evolution< TyT >::is_known | ( | int | j | ) | const [inline] |
Checks whether the value a given time step has been set.
| j | time step index |
true if the value at time step j is known, false otherwise Definition at line 331 of file evolution.C.
References Evolution< TyT >::pos_jtop, Evolution< TyT >::step, and Evolution< TyT >::val.
| int Evolution< TyT >::j_max | ( | ) | const [inline] |
Returns the larger time step j stored in *this.
Definition at line 478 of file evolution.C.
References Evolution< TyT >::pos_jtop, and Evolution< TyT >::step.
| int Evolution< TyT >::j_min | ( | ) | const [inline] |
Returns the smaller time step j stored in *this.
Definition at line 459 of file evolution.C.
References Evolution< TyT >::pos_jtop, and Evolution< TyT >::step.
| int Evolution< TyT >::next_position | ( | int | i | ) | const [inline, protected] |
Returns the next valid position (returns -1 if none is found).
Definition at line 298 of file evolution.C.
References Evolution< TyT >::pos_jtop, and Evolution< TyT >::step.
| TyT Evolution< TyT >::operator() | ( | double | t, | |
| int | order = 2 | |||
| ) | const [inline] |
Returns the value at time t, with a scheme of order order.
Definition at line 366 of file evolution.C.
References Evolution< TyT >::j_min(), Evolution< TyT >::next_position(), Evolution< TyT >::pos_jtop, Evolution< TyT >::position(), Evolution< TyT >::previous_position(), Evolution< TyT >::the_time, and Evolution< TyT >::val.
| void Evolution< TyT >::operator= | ( | const Evolution< TyT > & | t_in | ) | [inline, virtual] |
Assignement.
Reimplemented in Evolution_full< TyT >, Evolution_std< TyT >, Evolution_full< Tbl >, Evolution_std< Scalar >, Evolution_std< double >, Evolution_std< Vector >, and Evolution_std< Sym_tensor >.
Definition at line 231 of file evolution.C.
| const TyT & Evolution< TyT >::operator[] | ( | int | j | ) | const [inline] |
Returns the value at time step j.
Definition at line 356 of file evolution.C.
References Evolution< TyT >::position(), and Evolution< TyT >::val.
| int Evolution< TyT >::position | ( | int | j | ) | const [inline, protected] |
Gives the position in the arrays step, the_time and val corresponding to the time step j.
Definition at line 269 of file evolution.C.
References Evolution< TyT >::pos_jtop, and Evolution< TyT >::step.
| int Evolution< TyT >::previous_position | ( | int | i | ) | const [inline, protected] |
Returns the previous valid position (returns -1 if none is found).
Definition at line 314 of file evolution.C.
References Evolution< TyT >::pos_jtop, and Evolution< TyT >::step.
| void Evolution< TyT >::save | ( | const char * | filename | ) | const [inline] |
Saves *this in a formatted file.
If TyT = double, this file is readable by 2-D plotting software (e.g. Xmgrace) to produce a curve of the time evolution.
| filename | name of the file: this file will be created in the working directory. |
Definition at line 585 of file evolution.C.
References Evolution< TyT >::pos_jtop, Evolution< TyT >::size, Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
| TyT Evolution< TyT >::time_derive | ( | int | j, | |
| int | n = 2 | |||
| ) | const [inline] |
Computes the time derivative at time step j by means of a n-th order scheme, from the values at steps j, j-1, .
.., j-n.
| j | [input] : value of the time step at which the time derivative is required | |
| n | [input] : order of the time scheme (default value=2); if n=0, then the Evolution is considered to be stationary and a null value is returned. |
j Definition at line 500 of file evolution.C.
References Evolution< TyT >::operator[](), Evolution< TyT >::position(), Evolution< TyT >::step, Evolution< TyT >::the_time, and Evolution< TyT >::val.
| virtual void Evolution< TyT >::update | ( | const TyT & | new_value, | |
| int | j, | |||
| double | time_j | |||
| ) | [pure virtual] |
Sets a new value at a given time step.
Implemented in Evolution_full< TyT >, Evolution_std< TyT >, Evolution_full< Tbl >, Evolution_std< Scalar >, Evolution_std< double >, Evolution_std< Vector >, and Evolution_std< Sym_tensor >.
Position in the arrays step, the_time and val of the most evolved time step.
Definition at line 138 of file evolution.h.
Maximum number of stored time steps.
Definition at line 124 of file evolution.h.
Array of time step indices (size = size).
Definition at line 127 of file evolution.h.
Array of values of t at the various time steps (size = size).
Definition at line 130 of file evolution.h.
Array of pointers onto the values (size = size).
Definition at line 133 of file evolution.h.
1.6.1