1# ifndef _RHEOLEF_FORM_H
2# define _RHEOLEF_FORM_H
126#include "rheolef/csr.h"
127#include "rheolef/field.h"
133template <
class T,
class M>
class form_concat_value;
134template <
class T,
class M>
class form_concat_line;
141template <
class T,
class M>
class band_basic;
145template<
class T,
class M>
162 template<class Expr, class Sfinae = typename std::enable_if<details::is_form_lazy<Expr>::value, Expr>::type>
165 template<class Expr, class Sfinae = typename std::enable_if<details::is_form_lazy<Expr>::value, Expr>::type>
171 form_basic (
const std::initializer_list<details::form_concat_line <T,M> >& init_list);
185 const communicator&
comm()
const;
200 void dump (std::string name)
const;
227 template<class Expr, class Sfinae = typename std::enable_if<details::is_form_lazy<Expr>::value, Expr>::type>
231 template <
class Expr>
239 template <
class Expr>
244 template <
class Expr>
252 const std::string& name =
"",
253 const quadrature_option& qopt = quadrature_option());
256 const std::string& name,
258 const quadrature_option& qopt = quadrature_option());
260 template<
class Function>
262 const std::string& name,
264 const quadrature_option& qopt = quadrature_option());
267 const std::string& name,
269 const quadrature_option& qopt = quadrature_option());
272 const std::string& name,
275 const quadrature_option& qopt = quadrature_option());
277 template<
class Function>
281 const std::string& name,
284 const quadrature_option& qopt = quadrature_option());
287 template<
class WeightFunction>
289 const std::string& name,
291 WeightFunction weight,
292 const quadrature_option& qopt);
293 template<
class WeightFunction>
295 const std::string& name,
298 WeightFunction weight,
300 const quadrature_option& qopt);
314template<
class T,
class M>
317: _X(), _Y(), _uu(), _ub(), _bu(), _bb()
320template<
class T,
class M>
323: _X(a._X), _Y(a._Y), _uu(a._uu), _ub(a._ub), _bu(a._bu), _bb(a._bb)
326template<
class T,
class M>
333 _uu.operator= (a._uu);
334 _ub.operator= (a._ub);
335 _bu.operator= (a._bu);
336 _bb.operator= (a._bb);
339template<
class T,
class M>
346template<
class T,
class M>
353template<
class T,
class M>
360template<
class T,
class M>
370template<
class T,
class M>
382template<
class T,
class M>
394template<
class T,
class M>
400 c._uu = _uu*b._uu + _ub*b._bu;
401 c._ub = _uu*b._ub + _ub*b._bb;
402 c._bu = _bu*b._uu + _bb*b._bu;
403 c._bb = _bu*b._ub + _bb*b._bb;
406template<
class T,
class M>
417template<
class T,
class M>
426template<
class T,
class M>
433template<
class T,
class M>
438 return _uu.is_symmetric() && _bb.is_symmetric();
440template<
class T,
class M>
445 _uu.set_symmetry(is_symm);
446 _bb.set_symmetry(is_symm);
448template<
class T,
class M>
453 return _uu.is_definite_positive() && _bb.is_definite_positive();
455template<
class T,
class M>
460 _uu.set_definite_positive(is_dp);
461 _bb.set_definite_positive(is_dp);
463template<
class T,
class M>
468 return is_symmetric() && is_definite_positive();
470template<
class T,
class M>
476 set_definite_positive();
field gh(Float epsilon, Float t, const field &uh, const test &v)
see the band page for the full documentation
see the csr page for the full documentation
generic mesh with rerefence counting
see the integrate_option page for the full documentation
odiststream: see the diststream page for the full documentation
form_basic< Float, rheo_default_memory_model > form
void get_geo(istream &in, my_geo &omega)
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format format dump
This file is part of Rheolef.
csr< T, sequential > operator-(const csr< T, sequential > &a)
csr< T, M > diag(const vec< T, M > &d)
csr< T, sequential > trans(const csr< T, sequential > &a)
trans(a): see the form page for the full documentation
csr< T, sequential > operator*(const T &lambda, const csr< T, sequential > &a)