1 # ifndef _RHEOLEF_FORM_H
2 # define _RHEOLEF_FORM_H
126 #include "rheolef/csr.h"
127 #include "rheolef/field.h"
133 template <
class T,
class M>
class form_concat_value;
134 template <
class T,
class M>
class form_concat_line;
141 template <
class T,
class M>
class band_basic;
145 template<
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>
185 const communicator&
comm()
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 =
"",
256 const std::string&
name,
260 template<
class Function>
262 const std::string&
name,
267 const std::string&
name,
272 const std::string&
name,
277 template<
class Function>
281 const std::string&
name,
287 template<
class WeightFunction>
289 const std::string&
name,
291 WeightFunction weight,
293 template<
class WeightFunction>
295 const std::string&
name,
298 WeightFunction weight,
314 template<
class T,
class M>
317 : _X(), _Y(), _uu(), _ub(), _bu(), _bb()
320 template<
class T,
class M>
323 : _X(
a._X), _Y(
a._Y), _uu(
a._uu), _ub(
a._ub), _bu(
a._bu), _bb(
a._bb)
326 template<
class T,
class M>
333 _uu.operator= (
a._uu);
334 _ub.operator= (
a._ub);
335 _bu.operator= (
a._bu);
336 _bb.operator= (
a._bb);
339 template<
class T,
class M>
346 template<
class T,
class M>
353 template<
class T,
class M>
360 template<
class T,
class M>
370 template<
class T,
class M>
382 template<
class T,
class M>
394 template<
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;
406 template<
class T,
class M>
417 template<
class T,
class M>
426 template<
class T,
class M>
433 template<
class T,
class M>
438 return _uu.is_symmetric() && _bb.is_symmetric();
440 template<
class T,
class M>
445 _uu.set_symmetry(is_symm);
446 _bb.set_symmetry(is_symm);
448 template<
class T,
class M>
453 return _uu.is_definite_positive() && _bb.is_definite_positive();
455 template<
class T,
class M>
460 _uu.set_definite_positive(is_dp);
461 _bb.set_definite_positive(is_dp);
463 template<
class T,
class M>
468 return is_symmetric() && is_definite_positive();
470 template<
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
integrate_option quadrature_option
form_basic< Float, rheo_default_memory_model > form
void get_geo(istream &in, my_geo &omega)
This file is part of Rheolef.
csr< T, sequential > trans(const csr< T, sequential > &a)
trans(a): see the form page for the full documentation
csr< T, sequential > operator-(const csr< T, sequential > &a)
csr< T, M > diag(const vec< T, M > &d)
csr< T, sequential > operator*(const T &lambda, const csr< T, sequential > &a)