Flow123d
release_3.0.0-1190-g0f314ad
|
#include <field.hh>
Public Types | |
enum | DataInterpolation { identic_msh, equivalent_msh, gauss_p0, interp_p0 } |
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) | |
VectorMPI | set_fe_data (std::shared_ptr< DOFHandlerMultiDim > dh, unsigned int component_index=0, VectorMPI dof_values=VectorMPI::sequential(0)) |
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 |
void | native_data_to_cache (ElementDataCache< double > &output_data_cache) |
unsigned int | data_size () const |
std::shared_ptr< DOFHandlerMultiDim > | get_dofhandler () const |
VectorMPI | get_data_vec () const |
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 void | set_native_dh (std::shared_ptr< DOFHandlerMultiDim > dh) |
bool | is_constant_in_space () const |
virtual | ~FieldAlgorithmBase () |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
Implementation. More... | |
static const Input::Type::Selection & | get_disc_selection_input_type () |
static const Input::Type::Selection & | get_interp_selection_input_type () |
Static Public Member Functions inherited from FieldAlgorithmBase< spacedim, Value > | |
static std::string | template_name () |
static Input::Type::Abstract & | get_input_type () |
static const Input::Type::Instance & | get_input_type_instance (Input::Type::Selection value_selection=Input::Type::Selection()) |
static const Input::Type::Record & | get_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_gauss (ElementDataCache< double >::ComponentDataPtr data_vec) |
Interpolate data (use Gaussian distribution) over all elements of target mesh. More... | |
void | interpolate_intersection (ElementDataCache< double >::ComponentDataPtr data_vec) |
Interpolate data (use intersection library) over all elements of target mesh. More... | |
void | calculate_native_values (ElementDataCache< double >::ComponentDataPtr data_cache) |
Calculate native data over all elements of target mesh. More... | |
void | fill_boundary_dofs () |
Private Attributes | |
std::shared_ptr< DOFHandlerMultiDim > | dh_ |
DOF handler object. More... | |
VectorMPI | data_vec_ |
Store data of Field. More... | |
std::vector< LongIdx > | dof_indices_ |
Array of indexes to data_vec_, used for get/set values. More... | |
FEValueHandler< 0, spacedim, Value > | value_handler0_ |
Value handler that allows get value of 0D elements. 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< 0 > * | fe0_ |
FiniteElement< 1 > * | fe1_ |
Same as previous, but represents 1D element. More... | |
FiniteElement< 2 > * | fe2_ |
Same as previous, but represents 2D element. More... | |
FiniteElement< 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... | |
OutputTime::DiscreteSpace | discretization_ |
Specify section where to find the field data in input mesh file. More... | |
DataInterpolation | interpolation_ |
Specify type of FE data interpolation. More... | |
FieldFlag::Flags | flags_ |
Field flags. More... | |
double | default_value_ |
Default value of element if not set in mesh data file. More... | |
Input::Record | in_rec_ |
Accessor to Input::Record. More... | |
bool | boundary_domain_ |
Is set in set_mesh method. Value true means, that we accept only boundary element accessors in the value method. More... | |
std::shared_ptr< std::vector< LongIdx > > | boundary_dofs_ |
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... | |
bool | is_constant_in_space_ |
Flag detects that field is only dependent on time. More... | |
Class representing fields given by finite element approximation.
typedef FieldAlgorithmBase<spacedim, Value> FieldFE< spacedim, Value >::FactoryBaseType |
Definition at line 54 of file field_fe.hh.
typedef FieldAlgorithmBase<spacedim, Value>::Point FieldFE< spacedim, Value >::Point |
Definition at line 53 of file field_fe.hh.
enum FieldFE::DataInterpolation |
Possible interpolations of input data.
Definition at line 59 of file field_fe.hh.
Default constructor, optionally we need number of components n_comp
in the case of Vector valued fields.
Definition at line 127 of file field_fe.cc.
|
private |
Calculate native data over all elements of target mesh.
Definition at line 635 of file field_fe.cc.
|
inline |
Return size of vector of data stored in Field
Definition at line 695 of file field_fe.cc.
|
private |
Fill data to boundary_dofs_ vector.
TODO: Temporary solution. Fix problem with merge new DOF handler and boundary Mesh. Will be removed in future.
Definition at line 289 of file field_fe.cc.
|
inline |
Definition at line 141 of file field_fe.hh.
|
static |
Return Input selection for discretization type (determines the section of VTK file).
Definition at line 86 of file field_fe.cc.
|
inline |
Definition at line 137 of file field_fe.hh.
|
static |
Implementation.
Return Record for initialization of FieldFE that is derived from Abstract
Definition at line 55 of file field_fe.cc.
|
static |
Return Input selection that allow to set interpolation of input data.
Definition at line 98 of file field_fe.cc.
|
virtual |
Initialization from the input interface.
Reimplemented from FieldAlgorithmBase< spacedim, Value >.
Definition at line 226 of file field_fe.cc.
|
private |
Interpolate data (use Gaussian distribution) over all elements of target mesh.
Definition at line 430 of file field_fe.cc.
|
private |
Interpolate data (use intersection library) over all elements of target mesh.
Definition at line 527 of file field_fe.cc.
|
private |
Create DofHandler object.
Definition at line 316 of file field_fe.cc.
void FieldFE< spacedim, Value >::native_data_to_cache | ( | ElementDataCache< double > & | output_data_cache | ) |
Copy data vector to given output ElementDataCache
Definition at line 675 of file field_fe.cc.
VectorMPI FieldFE< spacedim, Value >::set_fe_data | ( | std::shared_ptr< DOFHandlerMultiDim > | dh, |
unsigned int | component_index = 0 , |
||
VectorMPI | dof_values = VectorMPI::sequential(0) |
||
) |
Setter for the finite element data.
dh | Dof handler. |
data | Vector of dof values, optional (create own vector according to dofhandler). |
component_index | Index of component (for vector_view/tensor_view) |
Definition at line 136 of file field_fe.cc.
|
overridevirtual |
Set target mesh.
Reimplemented from FieldAlgorithmBase< spacedim, Value >.
Definition at line 249 of file field_fe.cc.
|
overridevirtual |
Update time and possibly update data from GMSH file.
Reimplemented from FieldAlgorithmBase< spacedim, Value >.
Definition at line 380 of file field_fe.cc.
|
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 176 of file field_fe.cc.
|
virtual |
Returns std::vector of scalar values in several points at once.
Implements FieldAlgorithmBase< spacedim, Value >.
Definition at line 200 of file field_fe.cc.
|
private |
Hold dofs of boundary elements.
TODO: Temporary solution. Fix problem with merge new DOF handler and boundary Mesh. Will be removed in future.
Definition at line 228 of file field_fe.hh.
Is set in set_mesh method. Value true means, that we accept only boundary element accessors in the value
method.
Definition at line 221 of file field_fe.hh.
Store data of Field.
Definition at line 173 of file field_fe.hh.
Default value of element if not set in mesh data file.
Definition at line 215 of file field_fe.hh.
|
private |
DOF handler object.
Definition at line 171 of file field_fe.hh.
|
private |
Specify section where to find the field data in input mesh file.
Definition at line 206 of file field_fe.hh.
|
private |
Array of indexes to data_vec_, used for get/set values.
Definition at line 175 of file field_fe.hh.
|
private |
Used in DOFHandler::distribute_dofs method. Represents 0D element.
For correct functionality must be created proper descendant of FiniteElement class.
Definition at line 191 of file field_fe.hh.
|
private |
Same as previous, but represents 1D element.
Definition at line 193 of file field_fe.hh.
|
private |
Same as previous, but represents 2D element.
Definition at line 195 of file field_fe.hh.
|
private |
Same as previous, but represents 3D element.
Definition at line 197 of file field_fe.hh.
field name read from input
Definition at line 203 of file field_fe.hh.
|
private |
Field flags.
Definition at line 212 of file field_fe.hh.
|
private |
Accessor to Input::Record.
Definition at line 218 of file field_fe.hh.
|
private |
Specify type of FE data interpolation.
Definition at line 209 of file field_fe.hh.
mesh reader file
Definition at line 200 of file field_fe.hh.
Registrar of class to factory.
Definition at line 231 of file field_fe.hh.
|
private |
Value handler that allows get value of 0D elements.
Definition at line 178 of file field_fe.hh.
|
private |
Value handler that allows get value of 1D elements.
Definition at line 180 of file field_fe.hh.
|
private |
Value handler that allows get value of 2D elements.
Definition at line 182 of file field_fe.hh.
|
private |
Value handler that allows get value of 3D elements.
Definition at line 184 of file field_fe.hh.