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);
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);
309typedef form_basic<Float,rheo_default_memory_model>
form;
314template<
class T,
class M>
320template<
class T,
class M>
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>
470template<
class T,
class M>
field gh(Float epsilon, Float t, const field &uh, const test &v)
see the band page for the full documentation
see the communicator 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)