Scroll to navigation

branch(2rheolef) rheolef branch(2rheolef)

NAME

branch - parameter-dependent sequence of field (rheolef-7.2)

DESCRIPTION

The branch class stores a field sequence together with its associated parameter value. A branch variable represents a pair (t,uh(t)) for a specific value of the parameter t. Applications concern time-dependent problems and continuation methods. This class is convenient for file inputs/outputs and for building animations. It extends to multi-field sequences, such as (t,uh(t),ph(t)), up to an arbitrarily number of fields. See also the branch(1) unix command for running animations.

IMPLEMENTATION

This documentation has been generated from file main/lib/branch.h

The branch class is simply an alias to the branch_basic class

typedef branch_basic<Float> branch;

The branch_basic class provides an interface to a n-uplet of fields together with a parameter value:

template <class T, class M = rheo_default_memory_model>
class branch_basic : public std::vector<std::pair<std::string,field_basic<T,M> > > {
public :
// typedefs:

typedef std::vector<std::pair<std::string,field_basic<T,M> > > base;
typedef typename base::size_type size_type;
// allocators:
branch_basic();
~branch_basic();
branch_basic (const branch_basic<T,M>&);
branch_basic<T,M>& operator= (const branch_basic<T,M>&);
template <typename... Args>
branch_basic(const std::string& parameter, Args... names); // accessors:
const T& parameter () const;
const std::string& parameter_name () const;
size_type n_value () const;
size_type n_field () const; // modifiers:
void set_parameter_name (const std::string& name);
void set_parameter (const T& value);
void set_range (const std::pair<T,T>& u_range);

};
template <class T, class M> idiststream& operator>> (idiststream&, branch_basic<T,M>&);
template <class T, class M> odiststream& operator<< (odiststream&, const branch_basic<T,M>&);

AUTHOR

Pierre Saramito <Pierre.Saramito@imag.fr>

COPYRIGHT

Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Mon Sep 19 2022 Version 7.2