Flow123d  last_with_con_2.0.0-4-g42e6930
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
FieldElementwise< spacedim, Value > Class Template Reference

#include <field_elementwise.hh>

Inheritance diagram for FieldElementwise< spacedim, Value >:
Inheritance graph
[legend]
Collaboration diagram for FieldElementwise< spacedim, Value >:
Collaboration graph
[legend]

Public Types

typedef FieldAlgorithmBase< spacedim, Value >::Point Point
 
typedef FieldAlgorithmBase< spacedim, Value > FactoryBaseType
 
- Public Types inherited from FieldAlgorithmBase< spacedim, Value >
typedef Space< spacedim >::Point Point
 

Public Member Functions

 FieldElementwise (unsigned int n_comp=0)
 
 FieldElementwise (std::shared_ptr< std::vector< typename Value::element_type > > data, unsigned int n_components)
 
virtual void init_from_input (const Input::Record &rec)
 
void set_data_row (unsigned int boundary_idx, typename Value::return_type &value)
 
bool set_time (const TimeStep &time) override
 
virtual void set_mesh (const Mesh *mesh, bool boundary_domain)
 
virtual Value::return_type const & value (const Point &p, const ElementAccessor< spacedim > &elm)
 
virtual void value_list (const std::vector< Point > &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename Value::return_type > &value_list)
 
virtual ~FieldElementwise ()
 
- Public Member Functions inherited from FieldAlgorithmBase< spacedim, Value >
 FieldAlgorithmBase (unsigned int n_comp=0)
 
void set_component_idx (unsigned int idx)
 
unsigned int n_comp () const
 
FieldResult field_result () const
 
virtual double next_change_time ()
 
virtual ~FieldAlgorithmBase ()
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 Implementation. More...
 
- Static Public Member Functions inherited from FieldAlgorithmBase< spacedim, Value >
static std::string template_name ()
 
static Input::Type::Abstractget_input_type ()
 
static const Input::Type::Instanceget_input_type_instance (Input::Type::Selection value_selection=Input::Type::Selection())
 
static std::shared_ptr< FieldAlgorithmBase< spacedim, Value > > function_factory (const Input::AbstractRecord &rec, unsigned int n_comp=0)
 

Private Attributes

bool internal_raw_data
 
bool boundary_domain_
 
std::shared_ptr< std::vector< typename Value::element_type > > data_
 Raw buffer of n_entities rows each containing Value::size() doubles. More...
 
unsigned int n_entities_
 Number of rows in data_ buffer. More...
 
unsigned int n_components_
 Size of Value. More...
 
FilePath reader_file_
 
const Meshmesh_
 
std::string field_name_
 

Static Private Attributes

static const int registrar
 Registrar of class to factory. More...
 

Additional Inherited Members

- Static Public Attributes inherited from FieldAlgorithmBase< spacedim, Value >
static const unsigned int spacedim_ =spacedim
 
static constexpr bool is_enum_valued = boost::is_same<typename Value::element_type, FieldEnum>::value
 
- Protected Attributes inherited from FieldAlgorithmBase< spacedim, Value >
TimeStep time_
 Actual time level; initial value is -infinity. More...
 
Value value_
 Last value, prevents passing large values (vectors) by value. More...
 
Value::return_type r_value_
 
FieldResult field_result_
 Indicator of particular values (zero, one) constant over space. More...
 
unsigned int component_idx_
 Specify if the field is part of a MultiField and which component it is. More...
 

Detailed Description

template<int spacedim, class Value>
class FieldElementwise< spacedim, Value >

Definition at line 52 of file field_elementwise.hh.

Member Typedef Documentation

template<int spacedim, class Value >
typedef FieldAlgorithmBase<spacedim, Value> FieldElementwise< spacedim, Value >::FactoryBaseType

Definition at line 56 of file field_elementwise.hh.

template<int spacedim, class Value >
typedef FieldAlgorithmBase<spacedim, Value>::Point FieldElementwise< spacedim, Value >::Point

Definition at line 55 of file field_elementwise.hh.

Constructor & Destructor Documentation

template<int spacedim, class Value >
FieldElementwise< spacedim, Value >::FieldElementwise ( unsigned int  n_comp = 0)

Definition at line 56 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
FieldElementwise< spacedim, Value >::FieldElementwise ( std::shared_ptr< std::vector< typename Value::element_type > >  data,
unsigned int  n_components 
)

Alternative to previous constructor.

Definition at line 67 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
FieldElementwise< spacedim, Value >::~FieldElementwise ( )
virtual

Definition at line 201 of file field_elementwise.impl.hh.

Member Function Documentation

template<int spacedim, class Value >
const Input::Type::Record & FieldElementwise< spacedim, Value >::get_input_type ( )
static

Implementation.

Definition at line 36 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
void FieldElementwise< spacedim, Value >::init_from_input ( const Input::Record rec)
virtual

Function can provide way to initialize itself from the input data.

TODO: make protected, should be called through function factory

Reimplemented from FieldAlgorithmBase< spacedim, Value >.

Definition at line 80 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
void FieldElementwise< spacedim, Value >::set_data_row ( unsigned int  boundary_idx,
typename Value::return_type &  value 
)

Set row of boundary data. Used to implement old BC input.

Definition at line 93 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
void FieldElementwise< spacedim, Value >::set_mesh ( const Mesh mesh,
bool  boundary_domain 
)
virtual

Has to be set before calling init_from_input. This also allocate and initialize internal buffer. Do nothing if mesh is already set.

See also description of the FieldBase<...>::set_mesh.

Reimplemented from FieldAlgorithmBase< spacedim, Value >.

Definition at line 132 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
bool FieldElementwise< spacedim, Value >::set_time ( const TimeStep time)
overridevirtual

Update time and possibly update data from GMSH file.

Reimplemented from FieldAlgorithmBase< spacedim, Value >.

Definition at line 108 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
Value::return_type const & FieldElementwise< spacedim, Value >::value ( const Point p,
const ElementAccessor< spacedim > &  elm 
)
virtual

Returns one value in one given point. ResultType can be used to avoid some costly calculation if the result is trivial.

Implements FieldAlgorithmBase< spacedim, Value >.

Definition at line 158 of file field_elementwise.impl.hh.

template<int spacedim, class Value >
void FieldElementwise< spacedim, Value >::value_list ( const std::vector< Point > &  point_list,
const ElementAccessor< spacedim > &  elm,
std::vector< typename Value::return_type > &  value_list 
)
virtual

Returns std::vector of scalar values in several points at once.

Implements FieldAlgorithmBase< spacedim, Value >.

Definition at line 175 of file field_elementwise.impl.hh.

Member Data Documentation

template<int spacedim, class Value >
bool FieldElementwise< spacedim, Value >::boundary_domain_
private

Is set in set_mesh method. Value true means, that we accept only boundary element accessors in the value method. TODO: temporary solution until we have separate mesh for the boundary part

Definition at line 110 of file field_elementwise.hh.

template<int spacedim, class Value >
std::shared_ptr< std::vector<typename Value::element_type> > FieldElementwise< spacedim, Value >::data_
private

Raw buffer of n_entities rows each containing Value::size() doubles.

Definition at line 112 of file field_elementwise.hh.

template<int spacedim, class Value >
std::string FieldElementwise< spacedim, Value >::field_name_
private

Definition at line 120 of file field_elementwise.hh.

template<int spacedim, class Value >
bool FieldElementwise< spacedim, Value >::internal_raw_data
private

Is flase whne the data vector is provided at construction. Then, we disallow initialization form input and do not delete data pointer in destructor.

Definition at line 105 of file field_elementwise.hh.

template<int spacedim, class Value >
const Mesh* FieldElementwise< spacedim, Value >::mesh_
private

Definition at line 119 of file field_elementwise.hh.

template<int spacedim, class Value >
unsigned int FieldElementwise< spacedim, Value >::n_components_
private

Size of Value.

Definition at line 116 of file field_elementwise.hh.

template<int spacedim, class Value >
unsigned int FieldElementwise< spacedim, Value >::n_entities_
private

Number of rows in data_ buffer.

Definition at line 114 of file field_elementwise.hh.

template<int spacedim, class Value >
FilePath FieldElementwise< spacedim, Value >::reader_file_
private

Definition at line 118 of file field_elementwise.hh.

template<int spacedim, class Value >
const int FieldElementwise< spacedim, Value >::registrar
staticprivate
Initial value:
=
Input::register_class< FieldElementwise<spacedim, Value>, unsigned int >("FieldElementwise") +

Registrar of class to factory.

Definition at line 122 of file field_elementwise.hh.


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