LORENE
Lorene::Evolution_std< TyT > Class Template Reference

Time evolution with partial storage (*** under development ***). More...

#include <evolution.h>

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

Public Member Functions

 Evolution_std (const TyT &initial_value, int nstored, int initial_j=0, double initial_time=0.)
 Constructor from initial value. More...
 
 Evolution_std (int nstored)
 Constructor without any initial value. More...
 
 Evolution_std (const Evolution_std< TyT > &t_in)
 Copy constructor. More...
 
virtual ~Evolution_std ()
 Destructor. More...
 
virtual void update (const TyT &new_value, int j, double time_j)
 Sets a new value at a given time step. More...
 
virtual void operator= (const Evolution_std< TyT > &t_in)
 Assignement to another Evolution_std. More...
 
virtual void operator= (const Evolution< TyT > &t_in)
 Assignement to a generic Evolution. More...
 
void downdate (int j)
 Suppresses a stored value. 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

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_std< TyT >

Time evolution with partial storage (*** under development ***).

()

The template class Evolution_std has been devised to store and manipulate evolving quantities of any type, for instance TyT = double or TyT = Scalar. The quantity is stored only for a limited number of time steps (the n last ones). For a full storage, use instead the class Evolution_full.

Definition at line 371 of file evolution.h.

Constructor & Destructor Documentation

◆ Evolution_std() [1/3]

template<typename TyT>
Lorene::Evolution_std< TyT >::Evolution_std ( const TyT &  initial_value,
int  nstored,
int  initial_j = 0,
double  initial_time = 0. 
)

Constructor from initial value.

Parameters
initial_valuevalue to be stored at time step initial_j
initial_jindex j of first time step to be stored
initial_timetime t corresponding to time step initial_j
nstoredtotal number of time steps to be stored

Definition at line 96 of file evolution_std.C.

◆ Evolution_std() [2/3]

template<typename TyT>
Lorene::Evolution_std< TyT >::Evolution_std ( int  nstored)

Constructor without any initial value.

Parameters
nstoredtotal number of time steps to be stored

Definition at line 103 of file evolution_std.C.

◆ Evolution_std() [3/3]

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

Copy constructor.

Definition at line 109 of file evolution_std.C.

◆ ~Evolution_std()

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

Destructor.

Definition at line 122 of file evolution_std.C.

Member Function Documentation

◆ downdate()

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

Suppresses a stored value.

Definition at line 244 of file evolution.C.

◆ get_size()

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

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
inlineinherited

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
inherited

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
inherited

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
inherited

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
protectedinherited

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
inherited

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

Definition at line 370 of file evolution.C.

◆ operator=() [1/2]

template<typename TyT>
void Lorene::Evolution_std< TyT >::operator= ( const Evolution_std< TyT > &  t_in)
virtual

Assignement to another Evolution_std.

Definition at line 132 of file evolution_std.C.

◆ operator=() [2/2]

template<typename TyT>
void Lorene::Evolution_std< TyT >::operator= ( const Evolution< TyT > &  t_in)
virtual

Assignement to a generic Evolution.

Reimplemented from Lorene::Evolution< TyT >.

Definition at line 164 of file evolution_std.C.

◆ operator[]()

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

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
protectedinherited

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
protectedinherited

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
inherited

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
inherited

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>
void Lorene::Evolution_std< TyT >::update ( const TyT &  new_value,
int  j,
double  time_j 
)
virtual

Sets a new value at a given time step.

If the size of the arrays of stored values (members step, the_time, val) is not sufficient, this method suppresses the oldest stored value.

Implements Lorene::Evolution< TyT >.

Definition at line 174 of file evolution_std.C.

Member Data Documentation

◆ pos_jtop

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

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
protectedinherited

Maximum number of stored time steps.

Definition at line 128 of file evolution.h.

◆ step

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

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
protectedinherited

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
protectedinherited

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: