Flow123d  intersections_paper-476-gbe68821
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
FieldFE< spacedim, Value > Class Template Reference

#include <field_fe.hh>

Inheritance diagram for FieldFE< spacedim, Value >:
Inheritance graph
[legend]
Collaboration diagram for FieldFE< 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

 FieldFE (unsigned int n_comp=0)
 
void set_fe_data (std::shared_ptr< DOFHandlerMultiDim > dh, MappingP1< 1, 3 > *map1, MappingP1< 2, 3 > *map2, MappingP1< 3, 3 > *map3, VectorSeqDouble *data)
 
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 void init_from_input (const Input::Record &rec, const struct FieldAlgoBaseInitData &init_data)
 
bool set_time (const TimeStep &time) override
 
void set_mesh (const Mesh *mesh, bool boundary_domain) override
 
virtual ~FieldFE ()
 Destructor. More...
 
- 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 const Input::Type::Recordget_field_algo_common_keys ()
 
static std::shared_ptr< FieldAlgorithmBase< spacedim, Value > > function_factory (const Input::AbstractRecord &rec, const struct FieldAlgoBaseInitData &init_data)
 

Private Member Functions

void make_dof_handler (const Mesh *mesh)
 Create DofHandler object. More...
 
void interpolate (ElementDataCache< double >::ComponentDataPtr data_vec)
 Interpolate data over all elements of target mesh. More...
 

Private Attributes

std::shared_ptr< DOFHandlerMultiDimdh_
 DOF handler object. More...
 
VectorSeqDoubledata_vec_
 Store data of Field. More...
 
unsigned int * dof_indices
 Array of indexes to data_vec_, used for get/set values. More...
 
FEValueHandler< 1, spacedim, Value > value_handler1_
 Value handler that allows get value of 1D elements. More...
 
FEValueHandler< 2, spacedim, Value > value_handler2_
 Value handler that allows get value of 2D elements. More...
 
FEValueHandler< 3, spacedim, Value > value_handler3_
 Value handler that allows get value of 3D elements. More...
 
FiniteElement< 1, 3 > * fe1_
 
FiniteElement< 2, 3 > * fe2_
 Same as previous, but represents 2D element. More...
 
FiniteElement< 3, 3 > * fe3_
 Same as previous, but represents 3D element. More...
 
FilePath reader_file_
 mesh reader file More...
 
std::string field_name_
 field name read from input More...
 
FieldFlag::Flags flags_
 Field flags. More...
 

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 Member Functions inherited from FieldAlgorithmBase< spacedim, Value >
void init_unit_conversion_coefficient (const Input::Record &rec, const struct FieldAlgoBaseInitData &init_data)
 Init value of unit_conversion_coefficient_ from input. More...
 
- 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...
 
double unit_conversion_coefficient_
 Coeficient of conversion of user-defined unit. More...
 

Detailed Description

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

Class representing fields given by finite element approximation.

Definition at line 42 of file field_fe.hh.

Member Typedef Documentation

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

Definition at line 46 of file field_fe.hh.

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

Definition at line 45 of file field_fe.hh.

Constructor & Destructor Documentation

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

Default constructor, optionally we need number of components n_comp in the case of Vector valued fields.

Definition at line 59 of file field_fe.cc.

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

Destructor.

Definition at line 281 of file field_fe.cc.

Member Function Documentation

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

Implementation.

Return Record for initialization of FieldFE that is derived from Abstract

Definition at line 39 of file field_fe.cc.

template<int spacedim, class Value >
void FieldFE< spacedim, Value >::init_from_input ( const Input::Record rec,
const struct FieldAlgoBaseInitData init_data 
)
virtual

Initialization from the input interface.

Reimplemented from FieldAlgorithmBase< spacedim, Value >.

Definition at line 144 of file field_fe.cc.

template<int spacedim, class Value >
void FieldFE< spacedim, Value >::interpolate ( ElementDataCache< double >::ComponentDataPtr  data_vec)
private

Interpolate data over all elements of target mesh.

Definition at line 228 of file field_fe.cc.

Here is the caller graph for this function:

template<int spacedim, class Value >
void FieldFE< spacedim, Value >::make_dof_handler ( const Mesh mesh)
private

Create DofHandler object.

Definition at line 168 of file field_fe.cc.

Here is the caller graph for this function:

template<int spacedim, class Value >
void FieldFE< spacedim, Value >::set_fe_data ( std::shared_ptr< DOFHandlerMultiDim dh,
MappingP1< 1, 3 > *  map1,
MappingP1< 2, 3 > *  map2,
MappingP1< 3, 3 > *  map3,
VectorSeqDouble data 
)

Setter for the finite element data. The mappings are required for computation of local coordinates.

Parameters
dhDof handler.
map11D mapping.
map22D mapping.
map33D mapping.
dataVector of dof values.

Definition at line 68 of file field_fe.cc.

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

Set target mesh.

Reimplemented from FieldAlgorithmBase< spacedim, Value >.

Definition at line 157 of file field_fe.cc.

template<int spacedim, class Value >
bool FieldFE< 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 200 of file field_fe.cc.

template<int spacedim, class Value >
Value::return_type const & FieldFE< 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 99 of file field_fe.cc.

template<int spacedim, class Value >
void FieldFE< 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 121 of file field_fe.cc.

Member Data Documentation

template<int spacedim, class Value >
VectorSeqDouble* FieldFE< spacedim, Value >::data_vec_
private

Store data of Field.

Definition at line 114 of file field_fe.hh.

template<int spacedim, class Value >
std::shared_ptr<DOFHandlerMultiDim> FieldFE< spacedim, Value >::dh_
private

DOF handler object.

Definition at line 112 of file field_fe.hh.

template<int spacedim, class Value >
unsigned int* FieldFE< spacedim, Value >::dof_indices
private

Array of indexes to data_vec_, used for get/set values.

Definition at line 116 of file field_fe.hh.

template<int spacedim, class Value >
FiniteElement<1,3>* FieldFE< spacedim, Value >::fe1_
private

Used in DOFHandler::distribute_dofs method. Represents 1D element.

For correct functionality must be created proper descendant of FiniteElement class.

Definition at line 130 of file field_fe.hh.

template<int spacedim, class Value >
FiniteElement<2,3>* FieldFE< spacedim, Value >::fe2_
private

Same as previous, but represents 2D element.

Definition at line 132 of file field_fe.hh.

template<int spacedim, class Value >
FiniteElement<3,3>* FieldFE< spacedim, Value >::fe3_
private

Same as previous, but represents 3D element.

Definition at line 134 of file field_fe.hh.

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

field name read from input

Definition at line 140 of file field_fe.hh.

template<int spacedim, class Value >
FieldFlag::Flags FieldFE< spacedim, Value >::flags_
private

Field flags.

Definition at line 143 of file field_fe.hh.

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

mesh reader file

Definition at line 137 of file field_fe.hh.

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

Registrar of class to factory.

Definition at line 146 of file field_fe.hh.

template<int spacedim, class Value >
FEValueHandler<1, spacedim, Value> FieldFE< spacedim, Value >::value_handler1_
private

Value handler that allows get value of 1D elements.

Definition at line 119 of file field_fe.hh.

template<int spacedim, class Value >
FEValueHandler<2, spacedim, Value> FieldFE< spacedim, Value >::value_handler2_
private

Value handler that allows get value of 2D elements.

Definition at line 121 of file field_fe.hh.

template<int spacedim, class Value >
FEValueHandler<3, spacedim, Value> FieldFE< spacedim, Value >::value_handler3_
private

Value handler that allows get value of 3D elements.

Definition at line 123 of file field_fe.hh.


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