Loading...
Searching...
No Matches
branch.h
Go to the documentation of this file.
#ifndef _RHEO_BRANCH_H
#define _RHEO_BRANCH_H
//
// This file is part of Rheolef.
//
// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
//
// Rheolef is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Rheolef is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Rheolef; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// =========================================================================
// AUTHOR: Pierre.Saramito@imag.fr
namespace rheolef {
} // namespace rheolef
#include "rheolef/field.h"
namespace rheolef {
template <class T, class M> class __obranch;
template <class T, class M> class __iobranch;
template <class T, class M> class __branch_header;
template <class T, class M> class __const_branch_header;
template <class T, class M> class __const_branch_finalize;
// =============================================================================
// class definition
// =============================================================================
// [verbatim_branch_basic]
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);
// [verbatim_branch_basic]
// input/output:
// get/set current value
template <typename... Args>
__obranch<T,M> operator() (const T& t, const field_basic<T,M>& u0, Args... uk);
template <typename... Args>
__iobranch<T,M> operator() (T& t, field_basic<T,M>& u0, Args&... uk);
__branch_header<T,M> header ();
__const_branch_header<T,M> header () const;
__const_branch_finalize<T,M> finalize () const;
// implementation
public:
template <class T1, class M1> friend class __obranch;
template <class T1, class M1> friend class __iobranch;
// inputs (internals):
template <class T1> friend void get_header (idiststream&, branch_basic<T1,sequential>&);
template <class T1> friend void get_event (idiststream&, branch_basic<T1,sequential>&);
#ifdef _RHEOLEF_HAVE_MPI
template <class T1> friend void get_header (idiststream&, branch_basic<T1,distributed>&);
template <class T1> friend void get_event (idiststream&, branch_basic<T1,distributed>&);
#endif // _RHEOLEF_HAVE_MPI
void get_header_rheolef (idiststream&);
void get_event_rheolef (idiststream&);
template <class T1> friend void get_header_vtk (idiststream&, branch_basic<T1,sequential>&);
template <class T1> friend void get_event_vtk (idiststream&, branch_basic<T1,sequential>&);
// outputs (internals):
void put_header (odiststream&) const;
void put_finalize (odiststream&) const;
// file formats
template <class T1> friend void put_header (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_finalize(odiststream&, const branch_basic<T1,sequential>&);
#ifdef _RHEOLEF_HAVE_MPI
template <class T1> friend void put_header (odiststream&, const branch_basic<T1,distributed>&);
template <class T1> friend void put_event (odiststream&, const branch_basic<T1,distributed>&);
template <class T1> friend void put_finalize(odiststream&, const branch_basic<T1,distributed>&);
#endif // _RHEOLEF_HAVE_MPI
void put_header_rheolef (odiststream&) const;
void put_event_rheolef (odiststream&) const;
void put_finalize_rheolef (odiststream&) const;
template <class T1> friend void put_header_gnuplot (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event_gnuplot (odiststream&, const branch_basic<T1,sequential>&);
// file formats
template <class T1> friend void put_header (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_finalize(odiststream&, const branch_basic<T1,sequential>&);
#ifdef _RHEOLEF_HAVE_MPI
template <class T1> friend void put_header (odiststream&, const branch_basic<T1,distributed>&);
template <class T1> friend void put_event (odiststream&, const branch_basic<T1,distributed>&);
template <class T1> friend void put_finalize(odiststream&, const branch_basic<T1,distributed>&);
#endif // _RHEOLEF_HAVE_MPI
template <class T1> friend void put_header_gnuplot (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event_gnuplot (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_finalize_gnuplot (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_header_paraview (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event_paraview (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_finalize_paraview(odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_header_vtk (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event_vtk (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_event_vtk_stream (odiststream&, const branch_basic<T1,sequential>&);
template <class T1> friend void put_finalize_vtk (odiststream&, const branch_basic<T1,sequential>&);
private:
template <typename... Args>
void fill_field_names (const std::string &field_name, Args... others);
void fill_field_names () {}
template <typename... Args>
void fill_field_values (std::size_t i, const field_basic<T,M>& ui, Args... uk);
void fill_field_values (std::size_t i) {}
// data:
protected:
std::string _parameter_name;
T _parameter_value;
size_type _n_value;
mutable size_type _count_value;
mutable std::ostream* _p_data_out;
mutable std::ostream* _p_ctrl_out;
mutable bool _header_in_done;
mutable bool _header_out_done;
mutable bool _finalize_out_done;
mutable std::string _to_clean;
mutable std::pair<T,T> _u_range;
mutable std::pair<bool,bool> _have_u_range;
// [verbatim_branch_basic_cont]
};
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>&);
// [verbatim_branch_basic_cont]
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>&);
// [verbatim_branch]
typedef branch_basic<Float> branch;
// [verbatim_branch]
// =============================================================================
// inlined
// =============================================================================
template <class T, class M>
inline
branch_basic<T,M>::branch_basic ()
: std::vector<std::pair<std::string,field_basic<T,M> > >(0),
_parameter_name ("*unnamed*"),
_parameter_value(std::numeric_limits<T>::max()),
_n_value (std::numeric_limits<size_type>::max()),
_count_value (std::numeric_limits<size_type>::max()),
_p_data_out (0),
_p_ctrl_out (0),
_header_in_done (false),
_header_out_done (false),
_finalize_out_done (false),
_to_clean(),
_u_range(std::pair<T,T>( std::numeric_limits<T>::max(),
-std::numeric_limits<T>::max())),
_have_u_range(std::pair<bool,bool>(false,false))
{
}
template <class T, class M>
inline
branch_basic<T,M>::branch_basic (const branch_basic<T,M>& x)
: std::vector<std::pair<std::string,field_basic<T,M> > >(x),
_parameter_name (x._parameter_name),
_parameter_value(x._parameter_value),
_n_value (x._n_value),
_count_value (x._count_value),
_p_data_out (x._p_data_out),
_p_ctrl_out (x._p_ctrl_out),
_header_in_done (x._header_in_done),
_header_out_done (x._header_out_done),
_finalize_out_done (x._finalize_out_done),
_to_clean (x._to_clean),
_u_range (x._u_range),
_have_u_range (x._have_u_range)
{
}
template <class T, class M>
inline
branch_basic<T,M>&
branch_basic<T,M>::operator= (const branch_basic<T,M>& x)
{
std::vector<std::pair<std::string,field_basic<T,M> > >::operator= (x);
_parameter_name = x._parameter_name;
_parameter_value = x._parameter_value;
_n_value = x._n_value;
_count_value = x._count_value;
_p_data_out = x._p_data_out;
_p_ctrl_out = x._p_ctrl_out;
_header_in_done = x._header_in_done;
_header_out_done = x._header_out_done;
_finalize_out_done = x._finalize_out_done;
_to_clean = x._to_clean;
_u_range = x._u_range;
_have_u_range = x._have_u_range;
return *this;
}
template <class T, class M>
template <typename... Args>
inline branch_basic<T,M>::branch_basic(const std::string& parameter_name, Args... field_names)
: std::vector<std::pair<std::string,field_basic<T,M> > >(0),
_parameter_name (parameter_name),
_parameter_value(std::numeric_limits<Float>::max()),
_n_value (std::numeric_limits<size_type>::max()),
_count_value (std::numeric_limits<size_type>::max()),
_p_data_out (0),
_p_ctrl_out (0),
_header_in_done (false),
_header_out_done (false),
_finalize_out_done (false),
_to_clean(),
_u_range(std::pair<T,T>( std::numeric_limits<T>::max(),
-std::numeric_limits<T>::max())),
_have_u_range(std::pair<bool,bool>(false,false))
{
check_macro (parameter_name.length() != 0, "empty parameter name not allowed");
fill_field_names (field_names...);
}
template <class T, class M>
template <typename... Args>
inline void branch_basic<T,M>::fill_field_names (const std::string& field_name, Args... others) {
check_macro (field_name.length() != 0, "empty field name not allowed");
base::push_back (std::make_pair(field_name, field_basic<T,M>()));
fill_field_names (others...);
}
// -----------------------------------------------------------------------------
// accessors
// -----------------------------------------------------------------------------
template <class T, class M>
inline
const T&
branch_basic<T,M>::parameter () const
{
return _parameter_value;
}
template <class T, class M>
inline
const std::string&
branch_basic<T,M>::parameter_name () const
{
return _parameter_name;
}
template <class T, class M>
inline
typename branch_basic<T,M>::size_type
branch_basic<T,M>::n_value () const
{
return _n_value;
}
template <class T, class M>
inline
typename branch_basic<T,M>::size_type
branch_basic<T,M>::n_field () const
{
return base::size();
}
// -----------------------------------------------------------------------------
// modifiers
// -----------------------------------------------------------------------------
template <class T, class M>
inline
void
branch_basic<T,M>::set_parameter_name (const std::string& name)
{
_parameter_name = name;
}
template <class T, class M>
inline
void
branch_basic<T,M>::set_parameter (const T& x)
{
_parameter_value = x;
}
template <class T, class M>
inline
void
branch_basic<T,M>::set_range (const std::pair<T,T>& u_range)
{
_u_range = u_range;
_have_u_range = std::pair<bool,bool>(false,false);
}
// -----------------------------------------------------------------------------
// io header wrapper
// -----------------------------------------------------------------------------
template <class T, class M>
class __branch_header {
public:
__branch_header (branch_basic<T,M>& b) : _b(b) {}
friend idiststream& operator>> (idiststream& in, __branch_header<T,M> h) {
get_header(in, h._b); return in; }
friend odiststream& operator<< (odiststream& out, __branch_header<T,M> h) {
h._b.put_header(out); return out; }
protected:
branch_basic<T,M>& _b;
template <class T1, class M1> friend class __const_branch_header;
};
template <class T, class M>
class __const_branch_header {
public:
__const_branch_header (const branch_basic<T,M>& b) : _b(b) {}
__const_branch_header (__branch_header<T,M> h) : _b(h._b) {}
friend odiststream& operator<< (odiststream& out, __const_branch_header<T,M> h) {
h._b.put_header(out); return out; }
protected:
const branch_basic<T,M>& _b;
};
template <class T, class M>
inline
__branch_header<T,M>
branch_basic<T,M>::header ()
{
return *this;
}
template <class T, class M>
inline
__const_branch_header<T,M>
branch_basic<T,M>::header () const
{
return *this;
}
// -----------------------------------------------------------------------------
// o finalize wrapper
// -----------------------------------------------------------------------------
template <class T, class M>
class __const_branch_finalize {
public:
__const_branch_finalize (const branch_basic<T,M>& b) : _b(b) {}
friend odiststream& operator<< (odiststream& out, __const_branch_finalize<T,M> h) {
h._b.put_finalize(out); return out; }
protected:
const branch_basic<T,M>& _b;
};
template <class T, class M>
inline
__const_branch_finalize<T,M>
branch_basic<T,M>::finalize () const
{
return *this;
}
// -----------------------------------------------------------------------------
// io value wrapper
// -----------------------------------------------------------------------------
template <class T, class M>
class __obranch {
public:
__obranch (odiststream& (*put)(odiststream&, const branch_basic<T,M>&), const branch_basic<T,M>& x)
: _put(put), _x(x) {}
friend odiststream& operator<< (odiststream& os, __obranch<T,M> m)
{ m._put (os, m._x); return os; }
private:
odiststream& (*_put) (odiststream&, const branch_basic<T,M>&);
const branch_basic<T,M>& _x;
};
template <class T, class M>
class __iobranch {
public:
template <typename... Args>
__iobranch (odiststream& (*put)(odiststream&, const branch_basic<T,M>&),
idiststream& (*get)(idiststream&, branch_basic<T,M>&),
branch_basic<T,M>& x,
T& t,
field_basic<T,M>& u0,
Args&... uk)
: _put(put), _get(get), _px(&x), _pt(&t), _pu()
{
std::size_t n = sizeof...(Args)+1;
_pu.resize(n);
_pu[0] = &u0;
fill_field_references (1, uk...);
}
__iobranch(const __iobranch<T,M>& x)
: _put(x._put), _get(x._get), _px(x._px), _pt(x._pt), _pu(x._pu) {}
template <typename... Args>
void fill_field_references (std::size_t i, field_basic<T,M>& ui, Args&... uk) {
_pu [i] = &ui;
fill_field_references (i+1, uk...);
}
void fill_field_references (std::size_t i) {}
template <class T1, class M1>
friend odiststream& operator<< (odiststream& os, __iobranch<T1,M1> m);
template <class T1, class M1>
friend idiststream& operator>> (idiststream& is, __iobranch<T1,M1> m);
private:
odiststream& (*_put) (odiststream&, const branch_basic<T,M>&);
idiststream& (*_get) (idiststream&, branch_basic<T,M>&);
branch_basic<T,M> *_px;
T *_pt;
std::vector<field_basic<T,M>*> _pu;
private:
__iobranch<T,M>& operator= (const __iobranch<T,M>&);
};
template <class T, class M>
inline
odiststream& operator<< (odiststream& os, __iobranch<T,M> m) {
m._put (os, *m._px);
return os;
}
template <class T, class M>
inline
idiststream& operator>> (idiststream& is, __iobranch<T,M> m) {
m._get (is, *m._px);
if (m._pt) { *m._pt = (*m._px).parameter(); }
for (std::size_t i = 0, n = (*m._px).size(); i < n; ++i) {
*(m._pu[i]) = (*m._px)[i].second;
}
return is;
}
template <class T, class M>
template <typename... Args>
inline
__obranch<T,M>
branch_basic<T,M>::operator() (const T& t, const field_basic<T,M>& u0, Args... uk) {
check_macro (base::size() >= sizeof...(Args)+1, "attempt to output a " << (sizeof...(Args)+1) <<"-field branch when a "
<< base::size() << "-field one was supplied");
_parameter_value = t;
base::operator[](0).second = u0;
fill_field_values (1, uk...);
return __obranch<T,M> (operator<<, *this);
}
template <class T, class M>
template <typename... Args>
inline
__iobranch<T,M>
branch_basic<T,M>::operator() (T& t, field_basic<T,M>& u0, Args&... uk) {
check_macro (base::size() >= sizeof...(Args)+1, "attempt to output a " << (sizeof...(Args)+1) <<"-field branch when a "
<< base::size() << "-field one was supplied");
_parameter_value = t;
base::operator[](0).second = u0;
fill_field_values (1, uk...);
return __iobranch<T,M> (operator<<, operator>>, *this, t, u0, uk...);
}
template <class T, class M>
template <typename... Args>
inline
void branch_basic<T,M>::fill_field_values(std::size_t id, const field_basic<T,M>& u_id, Args... uk) {
base::operator[](id++).second = u_id;
fill_field_values(id, uk...);
}
}// namespace rheolef
#endif // define_RHEO_BRANCH_H
Float
see the Float page for the full documentation
rheolef::__branch_header
Definition branch.h:380
rheolef::__branch_header::_b
branch_basic< T, M > & _b
Definition branch.h:388
rheolef::__branch_header::operator<<
friend odiststream & operator<<(odiststream &out, __branch_header< T, M > h)
Definition branch.h:385
rheolef::__branch_header::__branch_header
__branch_header(branch_basic< T, M > &b)
Definition branch.h:382
rheolef::__branch_header::operator>>
friend idiststream & operator>>(idiststream &in, __branch_header< T, M > h)
Definition branch.h:383
rheolef::__branch_header::__const_branch_header
friend class __const_branch_header
Definition branch.h:389
rheolef::__const_branch_finalize
Definition branch.h:419
rheolef::__const_branch_finalize::_b
const branch_basic< T, M > & _b
Definition branch.h:425
rheolef::__const_branch_finalize::__const_branch_finalize
__const_branch_finalize(const branch_basic< T, M > &b)
Definition branch.h:421
rheolef::__const_branch_finalize::operator<<
friend odiststream & operator<<(odiststream &out, __const_branch_finalize< T, M > h)
Definition branch.h:422
rheolef::__const_branch_header
Definition branch.h:392
rheolef::__const_branch_header::_b
const branch_basic< T, M > & _b
Definition branch.h:399
rheolef::__const_branch_header::operator<<
friend odiststream & operator<<(odiststream &out, __const_branch_header< T, M > h)
Definition branch.h:396
rheolef::__const_branch_header::__const_branch_header
__const_branch_header(const branch_basic< T, M > &b)
Definition branch.h:394
rheolef::__const_branch_header::__const_branch_header
__const_branch_header(__branch_header< T, M > h)
Definition branch.h:395
rheolef::__iobranch
Definition branch.h:449
rheolef::__iobranch::__iobranch
__iobranch(const __iobranch< T, M > &x)
Definition branch.h:465
rheolef::__iobranch::operator<<
friend odiststream & operator<<(odiststream &os, __iobranch< T1, M1 > m)
rheolef::__iobranch::fill_field_references
void fill_field_references(std::size_t i)
Definition branch.h:472
rheolef::__iobranch::fill_field_references
void fill_field_references(std::size_t i, field_basic< T, M > &ui, Args &... uk)
Definition branch.h:468
rheolef::__iobranch::__iobranch
__iobranch(odiststream &(*put)(odiststream &, const branch_basic< T, M > &), idiststream &(*get)(idiststream &, branch_basic< T, M > &), branch_basic< T, M > &x, T &t, field_basic< T, M > &u0, Args &... uk)
Definition branch.h:452
rheolef::__iobranch::operator>>
friend idiststream & operator>>(idiststream &is, __iobranch< T1, M1 > m)
rheolef::__obranch
Definition branch.h:438
rheolef::__obranch::__obranch
__obranch(odiststream &(*put)(odiststream &, const branch_basic< T, M > &), const branch_basic< T, M > &x)
Definition branch.h:440
rheolef::__obranch::operator<<
friend odiststream & operator<<(odiststream &os, __obranch< T, M > m)
Definition branch.h:442
rheolef::branch_basic
Definition branch.h:83
rheolef::branch_basic::put_finalize
friend void put_finalize(odiststream &, const branch_basic< T1, distributed > &)
rheolef::branch_basic::_p_ctrl_out
std::ostream * _p_ctrl_out
Definition branch.h:209
rheolef::branch_basic::branch_basic
branch_basic()
Definition branch.h:237
rheolef::branch_basic::set_range
void set_range(const std::pair< T, T > &u_range)
Definition branch.h:371
rheolef::branch_basic::put_event
friend void put_event(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::put_header_rheolef
void put_header_rheolef(odiststream &) const
Definition branch.cc:124
rheolef::branch_basic::put_event_paraview
friend void put_event_paraview(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::put_finalize_gnuplot
friend void put_finalize_gnuplot(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::get_header
friend void get_header(idiststream &, branch_basic< T1, sequential > &)
rheolef::branch_basic::_parameter_name
std::string _parameter_name
Definition branch.h:204
rheolef::branch_basic::put_event
friend void put_event(odiststream &, const branch_basic< T1, distributed > &)
rheolef::branch_basic::_count_value
size_type _count_value
Definition branch.h:207
rheolef::branch_basic::_finalize_out_done
bool _finalize_out_done
Definition branch.h:212
rheolef::branch_basic::put_finalize_vtk
friend void put_finalize_vtk(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::_header_out_done
bool _header_out_done
Definition branch.h:211
rheolef::branch_basic::put_finalize_rheolef
void put_finalize_rheolef(odiststream &) const
Definition branch.cc:210
rheolef::branch_basic::get_event
friend void get_event(idiststream &, branch_basic< T1, sequential > &)
rheolef::branch_basic::~branch_basic
~branch_basic()
Definition branch.cc:29
rheolef::branch_basic::get_event_vtk
friend void get_event_vtk(idiststream &, branch_basic< T1, sequential > &)
rheolef::branch_basic::put_header_gnuplot
friend void put_header_gnuplot(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic< T, M >::parameter
const T & parameter() const
Definition branch.h:326
rheolef::branch_basic::put_finalize
void put_finalize(odiststream &) const
Definition branch.cc:235
rheolef::branch_basic::get_header_rheolef
void get_header_rheolef(idiststream &)
Definition branch.cc:39
rheolef::branch_basic::_header_in_done
bool _header_in_done
Definition branch.h:210
rheolef::branch_basic::size_type
base::size_type size_type
Definition branch.h:88
rheolef::branch_basic::put_header_vtk
friend void put_header_vtk(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::_p_data_out
std::ostream * _p_data_out
Definition branch.h:208
rheolef::branch_basic::_parameter_value
T _parameter_value
Definition branch.h:205
rheolef::branch_basic::put_finalize
friend void put_finalize(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::put_finalize_paraview
friend void put_finalize_paraview(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::get_header_vtk
friend void get_header_vtk(idiststream &, branch_basic< T1, sequential > &)
rheolef::branch_basic::get_header
friend void get_header(idiststream &, branch_basic< T1, distributed > &)
rheolef::branch_basic::get_event_rheolef
void get_event_rheolef(idiststream &)
Definition branch.cc:56
rheolef::branch_basic::operator()
__obranch< T, M > operator()(const T &t, const field_basic< T, M > &u0, Args... uk)
Definition branch.h:509
rheolef::branch_basic::parameter_name
const std::string & parameter_name() const
Definition branch.h:333
rheolef::branch_basic::base
std::vector< std::pair< std::string, field_basic< T, M > > > base
Definition branch.h:87
rheolef::branch_basic::n_value
size_type n_value() const
Definition branch.h:340
rheolef::branch_basic::put_header
friend void put_header(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::put_event_gnuplot
friend void put_event_gnuplot(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::_to_clean
std::string _to_clean
Definition branch.h:213
rheolef::branch_basic::__iobranch
friend class __iobranch
Definition branch.h:130
rheolef::branch_basic::_u_range
std::pair< T, T > _u_range
Definition branch.h:214
rheolef::branch_basic::put_event_vtk_stream
friend void put_event_vtk_stream(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::_have_u_range
std::pair< bool, bool > _have_u_range
Definition branch.h:215
rheolef::branch_basic::finalize
__const_branch_finalize< T, M > finalize() const
Definition branch.h:430
rheolef::branch_basic::put_header_paraview
friend void put_header_paraview(odiststream &, const branch_basic< T1, sequential > &)
rheolef::branch_basic::put_header
friend void put_header(odiststream &, const branch_basic< T1, distributed > &)
rheolef::branch_basic::header
__branch_header< T, M > header()
Definition branch.h:404
rheolef::branch_basic::get_event
friend void get_event(idiststream &, branch_basic< T1, distributed > &)
rheolef::branch_basic::put_event_rheolef
void put_event_rheolef(odiststream &) const
Definition branch.cc:168
rheolef::branch_basic::set_parameter_name
void set_parameter_name(const std::string &name)
Definition branch.h:357
rheolef::branch_basic::put_header
void put_header(odiststream &) const
Definition branch.cc:160
rheolef::branch_basic::__obranch
friend class __obranch
Definition branch.h:129
rheolef::branch_basic::_n_value
size_type _n_value
Definition branch.h:206
rheolef::branch_basic::set_parameter
void set_parameter(const T &value)
Definition branch.h:364
rheolef::branch_basic::n_field
size_type n_field() const
Definition branch.h:347
rheolef::branch_basic::operator=
branch_basic< T, M > & operator=(const branch_basic< T, M > &)
Definition branch.h:275
rheolef::branch_basic::put_event_vtk
friend void put_event_vtk(odiststream &, const branch_basic< T1, sequential > &)
rheolef::field_basic
Definition field.h:219
rheolef::idiststream
idiststream: see the diststream page for the full documentation
Definition diststream.h:336
rheolef::odiststream
odiststream: see the diststream page for the full documentation
Definition diststream.h:137
rheolef::branch
branch_basic< Float > branch
Definition branch.h:229
T
Expr1::float_type T
Definition field_expr.h:230
check_macro
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::operator<<
std::ostream & operator<<(std::ostream &os, const catchmark &m)
Definition catchmark.h:99
rheolef::get_header
void get_header(idiststream &in, branch_basic< T, sequential > &b)
Definition branch.cc:82
rheolef::put
void put(std::ostream &out, std::string name, const tiny_matrix< T > &a)
Definition tiny_lu.h:155
rheolef::operator>>
std::istream & operator>>(std::istream &is, const catchmark &m)
Definition catchmark.h:88
std
STL namespace.
M
Expr1::memory_type M
Definition vec_expr_v2.h:416