LORENE
Lorene::Evolution< TyT > Class Template Referenceabstract

Time evolution (*** under development ***). More...

#include <evolution.h>

Inheritance diagram for Lorene::Evolution< TyT >:
Lorene::Evolution_full< TyT > Lorene::Evolution_std< TyT >

Public Member Functions

virtual ~Evolution ()
 Destructor. More...
 
virtual void update (const TyT &new_value, int j, double time_j)=0
 Sets a new value at a given time step. More...
 
void downdate (int j)
 Suppresses a stored value. More...
 
virtual void operator= (const Evolution< TyT > &t_in)
 Assignement. More...
 
const TyT & operator[] (int j) const
 Returns the value at time step j. More...
 
double get_time (int j) const
 Returns the time t at time step j. More...
 
TyT operator() (double t, int order=2) const
 Returns the value at time t, with a scheme of order order. More...
 
int get_size () const
 Returns the member size. More...
 
int j_min () const
 Returns the smaller time step j stored in *this. More...
 
int j_max () const
 Returns the larger time step j stored in *this. More...
 
bool is_known (int j) const
 Checks whether the value a given time step has been set. More...
 
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, ..., j-n. More...
 
void save (const char *filename) const
 Saves *this in a formatted file. More...
 

Protected Member Functions

 Evolution (const TyT &initial_value, int initial_j, double initial_time, int initial_size)
 Constructor from some initial value. More...
 
 Evolution (int initial_size)
 Constructor without any initial value. More...
 
 Evolution (const Evolution< TyT > &t_in)
 Copy constructor. More...
 
int position (int j) const
 Gives the position in the arrays step, the_time and val corresponding to the time step j. More...
 
int next_position (int i) const
 Returns the next valid position (returns -1 if none is found) More...
 
int previous_position (int i) const
 Returns the previous valid position (returns -1 if none is found) More...
 

Protected Attributes

int size
 Maximum number of stored time steps. More...
 
int * step
 Array of time step indices (size = size). More...
 
double * the_time
 Array of values of t at the various time steps (size = size). More...
 
TyT ** val
 Array of pointers onto the values (size = size). More...
 
int pos_jtop
 Position in the arrays step, the_time and val of the most evolved time step. More...
 

Detailed Description

template<typename TyT>
class Lorene::Evolution< TyT >

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 120 of file evolution.h.

Constructor & Destructor Documentation

◆ Evolution() [1/3]

template<typename TyT>
Lorene::Evolution< TyT >::Evolution ( const TyT &  initial_value,
int  initial_j,
double  initial_time,
int  initial_size 
)
protected

Constructor from some initial value.

Definition at line 127 of file evolution.C.

◆ Evolution() [2/3]

template<typename TyT>
Lorene::Evolution< TyT >::Evolution ( int  initial_size)
protected

Constructor without any initial value.

Definition at line 154 of file evolution.C.

◆ Evolution() [3/3]

template<typename TyT>
Lorene::Evolution< TyT >::Evolution ( const Evolution< TyT > &  t_in)
protected

Copy constructor.

Definition at line 178 of file evolution.C.

◆ ~Evolution()

template<typename TyT >
Lorene::Evolution< TyT >::~Evolution ( )
virtual

Destructor.

Definition at line 214 of file evolution.C.

Member Function Documentation

◆ downdate()

template<typename TyT >
void Lorene::Evolution< TyT >::downdate ( int  j)

Suppresses a stored value.

Definition at line 244 of file evolution.C.

◆ get_size()

template<typename TyT>
int Lorene::Evolution< TyT >::get_size ( ) const
inline

Returns the member size.

Definition at line 205 of file evolution.h.

◆ get_time()

template<typename TyT>
double Lorene::Evolution< TyT >::get_time ( int  j) const
inline

Returns the time t at time step j.

Definition at line 199 of file evolution.h.

◆ is_known()

template<typename TyT >
bool Lorene::Evolution< TyT >::is_known ( int  j) const

Checks whether the value a given time step has been set.

Parameters
jtime step index
Returns
true if the value at time step j is known, false otherwise

Definition at line 335 of file evolution.C.

◆ j_max()

template<typename TyT >
int Lorene::Evolution< TyT >::j_max ( ) const

Returns the larger time step j stored in *this.

Definition at line 482 of file evolution.C.

◆ j_min()

template<typename TyT >
int Lorene::Evolution< TyT >::j_min ( ) const

Returns the smaller time step j stored in *this.

Definition at line 463 of file evolution.C.

◆ next_position()

template<typename TyT >
int Lorene::Evolution< TyT >::next_position ( int  i) const
protected

Returns the next valid position (returns -1 if none is found)

Definition at line 302 of file evolution.C.

◆ operator()()

template<typename TyT >
TyT Lorene::Evolution< TyT >::operator() ( double  t,
int  order = 2 
) const

Returns the value at time t, with a scheme of order order.

Definition at line 370 of file evolution.C.

◆ operator=()

◆ operator[]()

template<typename TyT >
const TyT & Lorene::Evolution< TyT >::operator[] ( int  j) const

Returns the value at time step j.

Definition at line 360 of file evolution.C.

◆ position()

template<typename TyT >
int Lorene::Evolution< TyT >::position ( int  j) const
protected

Gives the position in the arrays step, the_time and val corresponding to the time step j.

Definition at line 273 of file evolution.C.

◆ previous_position()

template<typename TyT >
int Lorene::Evolution< TyT >::previous_position ( int  i) const
protected

Returns the previous valid position (returns -1 if none is found)

Definition at line 318 of file evolution.C.

◆ save()

template<typename TyT >
void Lorene::Evolution< TyT >::save ( const char *  filename) const

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.

Parameters
filenamename of the file: this file will be created in the working directory.

Definition at line 589 of file evolution.C.

◆ time_derive()

template<typename TyT >
TyT Lorene::Evolution< 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, ..., j-n.

Parameters
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.
Returns
time derivative at time step j

Definition at line 504 of file evolution.C.

◆ update()

template<typename TyT>
virtual void Lorene::Evolution< TyT >::update ( const TyT &  new_value,
int  j,
double  time_j 
)
pure virtual

Member Data Documentation

◆ pos_jtop

template<typename TyT>
int Lorene::Evolution< TyT >::pos_jtop
protected

Position in the arrays step, the_time and val of the most evolved time step.

Definition at line 142 of file evolution.h.

◆ size

template<typename TyT>
int Lorene::Evolution< TyT >::size
protected

Maximum number of stored time steps.

Definition at line 128 of file evolution.h.

◆ step

template<typename TyT>
int* Lorene::Evolution< TyT >::step
protected

Array of time step indices (size = size).

Definition at line 131 of file evolution.h.

◆ the_time

template<typename TyT>
double* Lorene::Evolution< TyT >::the_time
protected

Array of values of t at the various time steps (size = size).

Definition at line 134 of file evolution.h.

◆ val

template<typename TyT>
TyT** Lorene::Evolution< TyT >::val
protected

Array of pointers onto the values (size = size).

Definition at line 137 of file evolution.h.


The documentation for this class was generated from the following files: