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  iterator
class  const_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< field_basic< T, rheo_default_memory_model > >
using size_type
using scalar_type
using memory_type
using float_type
using geo_type
using space_type
Public Types inherited from field_rdof_base< field_basic< T, rheo_default_memory_model > >
using size_type
using scalar_type
using memory_type
using float_type
using geo_type
using space_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< field_basic< T, rheo_default_memory_model > >
std::enable_if< details::is_rheolef_arithmetic< Value >::value, field_wdof_base< field_basic< T, rheo_default_memory_model > > & >::type operator= (const Value &)
field_wdof_indirect< field_basic< T, rheo_default_memory_model > > operator[] (const std::string &dom_name)
field_wdof_sliced< field_basic< T, rheo_default_memory_model > > operator() (size_type i_comp, size_type j_comp)
Public Member Functions inherited from field_rdof_base< field_basic< T, rheo_default_memory_model > >
field_rdof_indirect_const< field_basic< T, rheo_default_memory_model > > operator[] (const std::string &dom_name) const
field_rdof_sliced_const< field_basic< T, rheo_default_memory_model > > 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< field_basic< T, rheo_default_memory_model > >
field_basic< T, rheo_default_memory_model > & derived ()
Protected Member Functions inherited from field_rdof_base< field_basic< T, rheo_default_memory_model > >
field_basic< T, rheo_default_memory_model > & derived ()

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: