Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
field_basic< T, M >

Detailed Description

template<class T, class M = rheo_default_memory_model>
class rheolef::field_basic< T, M >
Examples
zalesak_dg_adapt.cc.

Definition at line 219 of file field.h.

+ Inheritance diagram for field_basic< T, M >:

Classes

class  const_iterator
 
class  iterator
 

Public Types

using wdof_base = details::field_wdof_base< field_basic< T, M > >
 
using rdof_base = details::field_rdof_base< field_basic< T, M > >
 
using size_type = std::size_t
 
using scalar_type = T
 
using memory_type = M
 
using float_type = typename float_traits< T >::type
 
using geo_type = geo_basic< float_type, memory_type >
 
using space_type = space_basic< float_type, memory_type >
 
using dis_reference = typename vec< scalar_type, memory_type >::dis_reference
 
using valued_type = space_constant::valued_type
 
using value_type = T
 
using result_type = T
 
- Public Types inherited from field_wdof_base< Derived >
using size_type = typename field_traits< Derived >::size_type
 
using scalar_type = typename field_traits< Derived >::scalar_type
 
using memory_type = typename field_traits< Derived >::memory_type
 
using float_type = typename float_traits< scalar_type >::type
 
using geo_type = geo_basic< float_type, memory_type >
 
using space_type = space_basic< float_type, memory_type >
 
- Public Types inherited from field_rdof_base< Derived >
using size_type = typename field_traits< Derived >::size_type
 
using scalar_type = typename field_traits< Derived >::scalar_type
 
using memory_type = typename field_traits< Derived >::memory_type
 
using float_type = typename float_traits< scalar_type >::type
 
using geo_type = geo_basic< float_type, memory_type >
 
using space_type = space_basic< float_type, memory_type >
 

Public Member Functions

 field_basic ()
 
 field_basic (const space_type &V, const T &init_value=std::numeric_limits< T >::max())
 
void resize (const space_type &V, const T &init_value=std::numeric_limits< T >::max())
 
template<class Expr , class Sfinae = typename std::enable_if< ( details::is_field_expr_affine_homogeneous<Expr>::value && ! details::is_field<Expr>::value ) || details::is_field_lazy<Expr>::value >::type>
 field_basic (const Expr &expr)
 
 field_basic (const std::initializer_list< details::field_concat_value< T, M > > &init_list)
 
field_basic< T, M > & operator= (const field_basic< T, M > &)
 
field_basic< T, M > & operator= (const std::initializer_list< details::field_concat_value< T, M > > &init_list)
 
const space_typeget_space () const
 
const geo_typeget_geo () const
 
std::string get_approx () const
 
valued_type valued_tag () const
 
const std::string & valued () const
 
const vec< T, M > & u () const
 
const vec< T, M > & b () const
 
vec< T, M > & set_u ()
 
vec< T, M > & set_b ()
 
T min () const
 
T max () const
 
T max_abs () const
 
T min_abs () const
 
const distributorownership () const
 
const communicatorcomm () const
 
size_type ndof () const
 
size_type dis_ndof () const
 
Tdof (size_type idof)
 
const Tdof (size_type idof) const
 
const Tdis_dof (size_type dis_idof) const
 
dis_reference dis_dof_entry (size_type dis_idof)
 
iterator begin_dof ()
 
iterator end_dof ()
 
const_iterator begin_dof () const
 
const_iterator end_dof () const
 
idiststreamget (idiststream &ips)
 
odiststreamput (odiststream &ops) const
 
odiststreamput_field (odiststream &ops) const
 
T dis_evaluate (const point_basic< T > &x, size_type i_comp=0) const
 
T operator() (const point_basic< T > &x) const
 
point_basic< Tdis_vector_evaluate (const point_basic< T > &x) const
 
int constraint_process_rank () const
 
T evaluate (const geo_element &K, const point_basic< T > &hat_xq, size_type i_comp=0) const
 
template<class SetOp = details::generic_set_op>
void dis_dof_update (const SetOp &=SetOp()) const
 
template<class Value >
std::enable_if< details::is_rheolef_arithmetic< Value >::value, field_basic< T, M > & >::type operator= (const Value &value)
 
template<class Expr >
std::enable_if< details::is_field_expr_affine_homogeneous< Expr >::value &&!details::has_field_rdof_interface< Expr >::value &&!details::is_field_expr_v2_constant< Expr >::value &&!details::is_field< Expr >::value, field_basic< T, M > & >::type operator= (const Expr &expr)
 
template<class FieldRdof >
std::enable_if< details::has_field_rdof_interface< FieldRdof >::value &&!details::is_field< FieldRdof >::value, field_basic< T, M > & >::type operator= (const FieldRdof &rdof)
 
template<class FieldLazy >
std::enable_if< details::has_field_lazy_interface< FieldLazy >::value &&!details::has_field_rdof_interface< FieldLazy >::value, field_basic< T, M > & >::type operator= (const FieldLazy &lazy)
 
details::field_wdof_indirect< field_basic< T, M > > operator[] (const geo_type &dom)
 
details::field_wdof_indirect< field_basic< T, M > > operator[] (std::string dom_name)
 
details::field_rdof_indirect_const< field_basic< T, M > > operator[] (const geo_type &dom) const
 
details::field_rdof_indirect_const< field_basic< T, M > > operator[] (std::string dom_name) const
 
size_type size () const
 
details::field_wdof_sliced< field_basic< T, M > > operator[] (size_type i_comp)
 
details::field_wdof_sliced< field_basic< T, M > > operator() (size_type i_comp, size_type j_comp)
 
details::field_rdof_sliced_const< field_basic< T, M > > operator[] (size_type i_comp) const
 
details::field_rdof_sliced_const< field_basic< T, M > > operator() (size_type i_comp, size_type j_comp) const
 
template<class Expr >
void do_integrate_internal (const geo_basic< T, M > &dom, const geo_basic< T, M > &band, const band_basic< T, M > &gh, const Expr &expr, const integrate_option &qopt, bool is_on_band)
 
template<class Expr >
void do_integrate (const geo_basic< T, M > &dom, const Expr &expr, const integrate_option &iopt)
 
template<class Expr >
void do_integrate (const band_basic< T, M > &gh, const Expr &expr, const integrate_option &iopt)
 
- Public Member Functions inherited from field_wdof_base< Derived >
template<class Value >
std::enable_if< details::is_rheolef_arithmetic< Value >::value, field_wdof_base< Derived > & >::type operator= (const Value &)
 
template<class FieldRdof >
std::enable_if< has_field_rdof_interface< FieldRdof >::value, field_wdof_base< Derived > & >::type operator= (const FieldRdof &)
 
template<class FieldLazy >
std::enable_if< has_field_lazy_interface< FieldLazy >::value &&!has_field_rdof_interface< FieldLazy >::value, field_wdof_base< Derived > & >::type operator= (const FieldLazy &)
 
field_wdof_indirect< Derived > operator[] (const std::string &dom_name)
 
field_wdof_indirect< Derived > operator[] (const geo_type &dom)
 
field_wdof_sliced< Derived > operator[] (size_type i_comp)
 
field_wdof_sliced< Derived > operator() (size_type i_comp, size_type j_comp)
 
- Public Member Functions inherited from field_rdof_base< Derived >
field_rdof_indirect_const< Derived > operator[] (const std::string &dom_name) const
 
field_rdof_indirect_const< Derived > operator[] (const geo_type &dom) const
 
field_rdof_sliced_const< Derived > operator[] (size_type i_comp) const
 
field_rdof_sliced_const< Derived > operator() (size_type i_comp, size_type j_comp) const
 
bool have_homogeneous_space (space_type &Xh) const
 

Protected Member Functions

void dis_dof_indexes_requires_update () const
 
void dis_dof_assembly_requires_update () const
 
- Protected Member Functions inherited from field_wdof_base< Derived >
Derived & derived ()
 
const Derived & derived () const
 
- Protected Member Functions inherited from field_rdof_base< Derived >
Derived & derived ()
 
const Derived & derived () const
 

Protected Attributes

space_type _V
 
vec< T, M_u
 
vec< T, M_b
 
bool _dis_dof_indexes_requires_update
 
bool _dis_dof_assembly_requires_update
 

Member Typedef Documentation

◆ wdof_base

template<class T , class M = rheo_default_memory_model>
using wdof_base = details::field_wdof_base<field_basic<T,M> >

Definition at line 223 of file field.h.

◆ rdof_base

template<class T , class M = rheo_default_memory_model>
using rdof_base = details::field_rdof_base<field_basic<T,M> >

Definition at line 224 of file field.h.

◆ size_type

template<class T , class M = rheo_default_memory_model>
using size_type = std::size_t

Definition at line 225 of file field.h.

◆ scalar_type

template<class T , class M = rheo_default_memory_model>
using scalar_type = T

Definition at line 226 of file field.h.

◆ memory_type

template<class T , class M = rheo_default_memory_model>
using memory_type = M

Definition at line 227 of file field.h.

◆ float_type

template<class T , class M = rheo_default_memory_model>
using float_type = typename float_traits<T>::type

Definition at line 228 of file field.h.

◆ geo_type

template<class T , class M = rheo_default_memory_model>
using geo_type = geo_basic <float_type,memory_type>

Definition at line 229 of file field.h.

◆ space_type

template<class T , class M = rheo_default_memory_model>
using space_type = space_basic<float_type,memory_type>

Definition at line 230 of file field.h.

◆ dis_reference

template<class T , class M = rheo_default_memory_model>
using dis_reference = typename vec<scalar_type,memory_type>::dis_reference

Definition at line 231 of file field.h.

◆ valued_type

template<class T , class M = rheo_default_memory_model>
using valued_type = space_constant::valued_type

Definition at line 232 of file field.h.

◆ value_type

template<class T , class M = rheo_default_memory_model>
using value_type = T

Definition at line 233 of file field.h.

◆ result_type

template<class T , class M = rheo_default_memory_model>
using result_type = T

Definition at line 234 of file field.h.

Constructor & Destructor Documentation

◆ field_basic() [1/4]

template<class T , class M >
field_basic ( )

Definition at line 702 of file field.h.

◆ field_basic() [2/4]

template<class T , class M >
field_basic ( const space_type V,
const T init_value = std::numeric_limits<T>::max() 
)
explicit

Definition at line 35 of file field.cc.

◆ field_basic() [3/4]

template<class T , class M >
template<class Expr , class Sfinae >
field_basic ( const Expr &  expr)

Definition at line 714 of file field.h.

◆ field_basic() [4/4]

template<class T , class M >
field_basic ( const std::initializer_list< details::field_concat_value< T, M > > &  init_list)

Definition at line 107 of file field_concat.h.

Member Function Documentation

◆ resize()

template<class T , class M >
void resize ( const space_type V,
const T init_value = std::numeric_limits<T>::max() 
)

Definition at line 49 of file field.cc.

◆ operator=() [1/6]

template<class T , class M >
field_basic< T, M > & operator= ( const field_basic< T, M > &  x)

Definition at line 894 of file field.h.

◆ operator=() [2/6]

template<class T , class M >
field_basic< T, M > & operator= ( const std::initializer_list< details::field_concat_value< T, M > > &  init_list)

Definition at line 116 of file field_concat.h.

◆ get_space()

template<class T , class M = rheo_default_memory_model>
const space_type & get_space ( ) const
Examples
zalesak_dg_adapt.cc.

Definition at line 270 of file field.h.

◆ get_geo()

template<class T , class M = rheo_default_memory_model>
const geo_type & get_geo ( ) const
Examples
zalesak_dg_adapt.cc.

Definition at line 271 of file field.h.

◆ get_approx()

template<class T , class M = rheo_default_memory_model>
std::string get_approx ( ) const

Definition at line 272 of file field.h.

◆ valued_tag()

template<class T , class M = rheo_default_memory_model>
valued_type valued_tag ( ) const

Definition at line 273 of file field.h.

◆ valued()

template<class T , class M = rheo_default_memory_model>
const std::string & valued ( ) const

Definition at line 274 of file field.h.

◆ u()

template<class T , class M = rheo_default_memory_model>
const vec< T, M > & u ( ) const

Definition at line 282 of file field.h.

◆ b()

template<class T , class M = rheo_default_memory_model>
const vec< T, M > & b ( ) const

Definition at line 283 of file field.h.

◆ set_u()

template<class T , class M = rheo_default_memory_model>
vec< T, M > & set_u ( )

Definition at line 284 of file field.h.

◆ set_b()

template<class T , class M = rheo_default_memory_model>
vec< T, M > & set_b ( )

Definition at line 285 of file field.h.

◆ min()

template<class T , class M >
T min ( ) const

Definition at line 786 of file field.h.

◆ max()

template<class T , class M >
T max ( ) const

Definition at line 802 of file field.h.

◆ max_abs()

template<class T , class M >
T max_abs ( ) const

Definition at line 834 of file field.h.

◆ min_abs()

template<class T , class M >
T min_abs ( ) const

Definition at line 818 of file field.h.

◆ ownership()

template<class T , class M = rheo_default_memory_model>
const distributor & ownership ( ) const

Definition at line 296 of file field.h.

◆ comm()

template<class T , class M = rheo_default_memory_model>
const communicator & comm ( ) const

Definition at line 297 of file field.h.

◆ ndof()

template<class T , class M = rheo_default_memory_model>
size_type ndof ( ) const

Definition at line 298 of file field.h.

◆ dis_ndof()

template<class T , class M = rheo_default_memory_model>
size_type dis_ndof ( ) const

Definition at line 299 of file field.h.

◆ dof() [1/2]

template<class T , class M >
T & dof ( size_type  idof)

Definition at line 738 of file field.h.

◆ dof() [2/2]

template<class T , class M >
const T & dof ( size_type  idof) const

Definition at line 754 of file field.h.

◆ dis_dof()

template<class T , class M >
const T & dis_dof ( size_type  dis_idof) const

Definition at line 377 of file field.cc.

◆ dis_dof_entry()

template<class T , class M >
field_basic< T, M >::dis_reference dis_dof_entry ( size_type  dis_idof)

Definition at line 398 of file field.cc.

◆ begin_dof() [1/2]

template<class T , class M >
field_basic< T, M >::iterator begin_dof ( )

Definition at line 595 of file field.h.

◆ end_dof() [1/2]

template<class T , class M >
field_basic< T, M >::iterator end_dof ( )

Definition at line 603 of file field.h.

◆ begin_dof() [2/2]

template<class T , class M >
field_basic< T, M >::const_iterator begin_dof ( ) const

Definition at line 684 of file field.h.

◆ end_dof() [2/2]

template<class T , class M >
field_basic< T, M >::const_iterator end_dof ( ) const

Definition at line 692 of file field.h.

◆ get()

template<class T , class M >
idiststream & get ( idiststream ips)

Definition at line 122 of file field.cc.

◆ put()

template<class T , class M >
odiststream & put ( odiststream ops) const

Definition at line 367 of file field.cc.

◆ put_field()

template<class T , class M >
odiststream & put_field ( odiststream ops) const

Definition at line 303 of file field.cc.

◆ dis_evaluate()

template<class T , class M >
T dis_evaluate ( const point_basic< T > &  x,
size_type  i_comp = 0 
) const

Definition at line 439 of file field.cc.

◆ operator()() [1/3]

template<class T , class M = rheo_default_memory_model>
T operator() ( const point_basic< T > &  x) const

Definition at line 320 of file field.h.

◆ dis_vector_evaluate()

template<class T , class M >
point_basic< T > dis_vector_evaluate ( const point_basic< T > &  x) const

Definition at line 469 of file field.cc.

◆ constraint_process_rank()

template<class T , class M = rheo_default_memory_model>
int constraint_process_rank ( ) const

Definition at line 325 of file field.h.

◆ evaluate()

template<class T , class M >
T evaluate ( const geo_element K,
const point_basic< T > &  hat_xq,
size_type  i_comp = 0 
) const

Definition at line 414 of file field.cc.

◆ dis_dof_update()

template<class T , class M >
template<class SetOp >
void dis_dof_update ( const SetOp &  set_op = SetOp()) const

Definition at line 763 of file field.h.

◆ operator=() [3/6]

template<class T , class M = rheo_default_memory_model>
template<class Value >
std::enable_if< details::is_rheolef_arithmetic< Value >::value, field_basic< T, M > & >::type operator= ( const Value &  value)

Definition at line 342 of file field.h.

◆ operator=() [4/6]

template<class T , class M = rheo_default_memory_model>
template<class Expr >
std::enable_if< details::is_field_expr_affine_homogeneous< Expr >::value &&!details::has_field_rdof_interface< Expr >::value &&!details::is_field_expr_v2_constant< Expr >::value &&!details::is_field< Expr >::value, field_basic< T, M > & >::type operator= ( const Expr &  expr)

Definition at line 359 of file field.h.

◆ operator=() [5/6]

template<class T , class M = rheo_default_memory_model>
template<class FieldRdof >
std::enable_if< details::has_field_rdof_interface< FieldRdof >::value &&!details::is_field< FieldRdof >::value, field_basic< T, M > & >::type operator= ( const FieldRdof &  rdof)

Definition at line 377 of file field.h.

◆ operator=() [6/6]

template<class T , class M = rheo_default_memory_model>
template<class FieldLazy >
std::enable_if< details::has_field_lazy_interface< FieldLazy >::value &&!details::has_field_rdof_interface< FieldLazy >::value, field_basic< T, M > & >::type operator= ( const FieldLazy &  lazy)

Definition at line 393 of file field.h.

◆ operator[]() [1/6]

template<class T , class M = rheo_default_memory_model>
details::field_wdof_indirect< field_basic< T, M > > operator[] ( const geo_type dom)

Definition at line 431 of file field.h.

◆ operator[]() [2/6]

template<class T , class M = rheo_default_memory_model>
details::field_wdof_indirect< field_basic< T, M > > operator[] ( std::string  dom_name)

Definition at line 433 of file field.h.

◆ operator[]() [3/6]

template<class T , class M = rheo_default_memory_model>
details::field_rdof_indirect_const< field_basic< T, M > > operator[] ( const geo_type dom) const

Definition at line 435 of file field.h.

◆ operator[]() [4/6]

template<class T , class M = rheo_default_memory_model>
details::field_rdof_indirect_const< field_basic< T, M > > operator[] ( std::string  dom_name) const

Definition at line 437 of file field.h.

◆ size()

template<class T , class M = rheo_default_memory_model>
size_type size ( ) const

Definition at line 441 of file field.h.

◆ operator[]() [5/6]

template<class T , class M = rheo_default_memory_model>
details::field_wdof_sliced< field_basic< T, M > > operator[] ( size_type  i_comp)

Definition at line 442 of file field.h.

◆ operator()() [2/3]

template<class T , class M = rheo_default_memory_model>
details::field_wdof_sliced< field_basic< T, M > > operator() ( size_type  i_comp,
size_type  j_comp 
)

Definition at line 444 of file field.h.

◆ operator[]() [6/6]

template<class T , class M = rheo_default_memory_model>
details::field_rdof_sliced_const< field_basic< T, M > > operator[] ( size_type  i_comp) const

Definition at line 446 of file field.h.

◆ operator()() [3/3]

template<class T , class M = rheo_default_memory_model>
details::field_rdof_sliced_const< field_basic< T, M > > operator() ( size_type  i_comp,
size_type  j_comp 
) const

Definition at line 448 of file field.h.

◆ do_integrate_internal()

template<class T , class M >
template<class Expr >
void do_integrate_internal ( const geo_basic< T, M > &  dom,
const geo_basic< T, M > &  band,
const band_basic< T, M > &  gh,
const Expr &  expr,
const integrate_option qopt,
bool  is_on_band 
)

Definition at line 95 of file field_vf_assembly.h.

◆ do_integrate() [1/2]

template<class T , class M >
template<class Expr >
void do_integrate ( const geo_basic< T, M > &  dom,
const Expr &  expr,
const integrate_option iopt 
)

Definition at line 171 of file field_vf_assembly.h.

◆ do_integrate() [2/2]

template<class T , class M >
template<class Expr >
void do_integrate ( const band_basic< T, M > &  gh,
const Expr &  expr,
const integrate_option iopt 
)

Definition at line 182 of file field_vf_assembly.h.

◆ dis_dof_indexes_requires_update()

template<class T , class M >
void dis_dof_indexes_requires_update ( ) const
protected

Definition at line 725 of file field.h.

◆ dis_dof_assembly_requires_update()

template<class T , class M >
void dis_dof_assembly_requires_update ( ) const
protected

Definition at line 731 of file field.h.

Member Data Documentation

◆ _V

template<class T , class M = rheo_default_memory_model>
space_type _V
protected

Definition at line 476 of file field.h.

◆ _u

template<class T , class M = rheo_default_memory_model>
vec<T,M> _u
mutableprotected

Definition at line 477 of file field.h.

◆ _b

template<class T , class M = rheo_default_memory_model>
vec<T,M> _b
mutableprotected

Definition at line 478 of file field.h.

◆ _dis_dof_indexes_requires_update

template<class T , class M = rheo_default_memory_model>
bool _dis_dof_indexes_requires_update
mutableprotected

Definition at line 479 of file field.h.

◆ _dis_dof_assembly_requires_update

template<class T , class M = rheo_default_memory_model>
bool _dis_dof_assembly_requires_update
mutableprotected

Definition at line 480 of file field.h.


The documentation for this class was generated from the following files: