Flow123d
master-c754b67
|
#include <field.hh>
Classes | |
class | FEItem |
class | NativeFactory |
class | RegionValueErr |
Public Types | |
enum | DataInterpolation { identic_msh, equivalent_msh, gauss_p0, interp_p0 } |
typedef FieldAlgorithmBase< spacedim, Value >::Point | Point |
typedef FieldAlgorithmBase< spacedim, Value > | FactoryBaseType |
typedef Field< spacedim, Value >::FactoryBase | FieldFactoryBaseType |
Public Member Functions | |
TYPEDEF_ERR_INFO (EI_Field, std::string) | |
Declaration of exception. More... | |
TYPEDEF_ERR_INFO (EI_File, std::string) | |
TYPEDEF_ERR_INFO (EI_ElemIdx, unsigned int) | |
TYPEDEF_ERR_INFO (EI_Region, std::string) | |
DECLARE_EXCEPTION (ExcInvalidElemeDim,<< "Dimension of element in target mesh must be 0, 1 or 2! elm.idx() = "<< EI_ElemIdx::val<< ".\n") | |
DECLARE_INPUT_EXCEPTION (ExcUndefElementValue,<< "FieldFE "<< EI_Field::qval<< " on region "<< EI_Region::qval<< " have invalid value .\n"<< "Provided by file "<< EI_File::qval<< " at element ID "<< EI_ElemIdx::val<< ".\n"<< "Please specify in default_value key.\n") | |
FieldFE (unsigned int n_comp=0) | |
VectorMPI | set_fe_data (std::shared_ptr< DOFHandlerMultiDim > dh, VectorMPI dof_values=VectorMPI::sequential(0), unsigned int block_index=FieldFE< spacedim, Value >::undef_uint) |
void | cache_update (FieldValueCache< typename Value::element_type > &data_cache, ElementCacheMap &cache_map, unsigned int region_patch_idx) override |
void | cache_reinit (const ElementCacheMap &cache_map) override |
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) override |
void | native_data_to_cache (ElementDataCache< double > &output_data_cache) |
unsigned int | data_size () const |
std::shared_ptr< DOFHandlerMultiDim > | get_dofhandler () const |
VectorMPI & | vec () |
const VectorMPI & | vec () const |
void | local_to_ghost_data_scatter_begin () |
Call begin scatter functions (local to ghost) on data vector. More... | |
void | local_to_ghost_data_scatter_end () |
Call end scatter functions (local to ghost) on data vector. More... | |
virtual | ~FieldFE () |
Destructor. More... | |
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 Attributes | |
static const unsigned int | undef_uint = -1 |
Private Member Functions | |
void | make_dof_handler (const MeshBase *mesh) |
Create DofHandler object. More... | |
void | interpolate_gauss () |
Interpolate data (use Gaussian distribution) over all elements of target mesh. More... | |
void | interpolate_intersection () |
Interpolate data (use intersection library) over all elements of target mesh. More... | |
void | calculate_element_values () |
Calculate data of equivalent_mesh interpolation or native data on input over all elements of target mesh. More... | |
template<unsigned int dim> | |
Quadrature | init_quad (std::shared_ptr< EvalPoints > eval_points) |
Initialize FEValues object of given dimension. More... | |
Armor::ArmaMat< typename Value::element_type, Value::NRows_, Value::NCols_ > | handle_fe_shape (unsigned int dim, unsigned int i_dof, unsigned int i_qp) |
template<unsigned int dim> | |
void | fill_fe_system_data (unsigned int block_index) |
template<unsigned int dim> | |
void | fill_fe_item () |
double | get_scaled_value (int i_cache_el, unsigned int elm_idx, const std::string ®ion_name, RegionValueErr &actual_compute_region_error) |
template<int elemdim> | |
unsigned int | compute_fe_quadrature (std::vector< arma::vec::fixed< 3 >> &q_points, std::vector< double > &q_weights, const ElementAccessor< spacedim > &elm, unsigned int order=3) |
Private Attributes | |
std::shared_ptr< DOFHandlerMultiDim > | dh_ |
DOF handler object. More... | |
VectorMPI | data_vec_ |
Store data of Field. 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::vector< FEValues< spacedim > > | fe_values_ |
List of FEValues objects of dimensions 0,1,2,3 used for value calculation. More... | |
std::shared_ptr< EquivalentMeshMap > | source_target_mesh_elm_map_ |
Maps element indices from computational mesh to the source (data). More... | |
std::array< FEItem, 4 > | fe_item_ |
Holds specific data of field evaluation over all dimensions. More... | |
MixedPtr< FiniteElement > | fe_ |
std::vector< RegionValueErr > | region_value_err_ |
Set holds data of valid / invalid element values on all regions. More... | |
ElementDataCache< double >::CacheData | input_data_cache_ |
Input ElementDataCache is stored in set_time and used in all evaluation and interpolation methods. More... | |
Static Private Attributes | |
static const int | registrar |
Registrar of class to factory. 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 Field<spacedim, Value>::FactoryBase FieldFE< spacedim, Value >::FieldFactoryBaseType |
Definition at line 55 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 60 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 134 of file field_fe.cc.
Destructor.
Definition at line 833 of file field_fe.cc.
|
override |
Overload FieldAlgorithmBase::cache_reinit
Reinit fe_values_ data member.
Definition at line 262 of file field_fe.cc.
|
override |
Overload FieldAlgorithmBase::cache_update
Definition at line 215 of file field_fe.cc.
|
private |
Calculate data of equivalent_mesh interpolation or native data on input over all elements of target mesh.
Definition at line 635 of file field_fe.cc.
|
inlineprivate |
Helper method. Compute real coordinates and weights (use QGauss) of given element.
Method is needs in Gauss interpolation.
Definition at line 305 of file field_fe.hh.
Return size of vector of data stored in Field
Definition at line 776 of file field_fe.cc.
FieldFE< spacedim, Value >::DECLARE_EXCEPTION | ( | ExcInvalidElemeDim | , |
<< "Dimension of element in target mesh must be | 0 | ||
) |
FieldFE< spacedim, Value >::DECLARE_INPUT_EXCEPTION | ( | ExcUndefElementValue | , |
<< "FieldFE< spacedim, Value > "<< EI_Field::qval<< " on region "<< EI_Region::qval<< " have invalid value .\n"<< "Provided by file "<< EI_File::qval<< " at element ID "<< EI_ElemIdx::val<< ".\n"<< "Please specify in default_value key.\n" | |||
) |
|
inlineprivate |
Definition at line 282 of file field_fe.hh.
|
inlineprivate |
Definition at line 272 of file field_fe.hh.
|
static |
Return Input selection for discretization type (determines the section of VTK file).
Definition at line 93 of file field_fe.cc.
|
inline |
|
static |
Implementation.
Return Record for initialization of FieldFE that is derived from Abstract
Definition at line 60 of file field_fe.cc.
|
static |
Return Input selection that allow to set interpolation of input data.
Definition at line 105 of file field_fe.cc.
|
private |
Method computes value of given input cache element.
If computed value is invalid (e.g. NaN value) sets the data specifying error value.
i_cache_el | Index of element of input ElementDataCache |
elm_idx | Idx of element of computational mesh |
region_name | Region of computational mesh |
actual_compute_region_error | Data object holding data of region with invalid value. |
Definition at line 797 of file field_fe.cc.
|
inlineprivate |
|
virtual |
Initialization from the input interface.
Definition at line 285 of file field_fe.cc.
|
private |
Initialize FEValues object of given dimension.
Definition at line 275 of file field_fe.cc.
Interpolate data (use Gaussian distribution) over all elements of target mesh.
Definition at line 436 of file field_fe.cc.
|
private |
Interpolate data (use intersection library) over all elements of target mesh.
Definition at line 532 of file field_fe.cc.
void FieldFE< spacedim, Value >::local_to_ghost_data_scatter_begin |
Call begin scatter functions (local to ghost) on data vector.
Definition at line 783 of file field_fe.cc.
void FieldFE< spacedim, Value >::local_to_ghost_data_scatter_end |
Call end scatter functions (local to ghost) on data vector.
Definition at line 790 of file field_fe.cc.
|
private |
Create DofHandler object.
Definition at line 345 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 757 of file field_fe.cc.
VectorMPI FieldFE< spacedim, Value >::set_fe_data | ( | std::shared_ptr< DOFHandlerMultiDim > | dh, |
VectorMPI | dof_values = VectorMPI::sequential(0) , |
||
unsigned int | block_index = FieldFE<spacedim, Value>::undef_uint |
||
) |
Setter for the finite element data.
dh | Dof handler. |
dof_values | Vector of dof values, optional (create own vector according to dofhandler). |
block_index | Index of block (in FESystem) or '-1' for FieldFE under simple DOF handler. |
Definition at line 175 of file field_fe.cc.
|
override |
Set target mesh.
Definition at line 309 of file field_fe.cc.
|
override |
Update time and possibly update data from GMSH file.
Definition at line 385 of file field_fe.cc.
FieldFE< spacedim, Value >::TYPEDEF_ERR_INFO | ( | EI_ElemIdx | , |
unsigned int | |||
) |
FieldFE< spacedim, Value >::TYPEDEF_ERR_INFO | ( | EI_Field | , |
std::string | |||
) |
Declaration of exception.
FieldFE< spacedim, Value >::TYPEDEF_ERR_INFO | ( | EI_File | , |
std::string | |||
) |
FieldFE< spacedim, Value >::TYPEDEF_ERR_INFO | ( | EI_Region | , |
std::string | |||
) |
|
inline |
Definition at line 184 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 350 of file field_fe.hh.
Store data of Field.
Definition at line 326 of file field_fe.hh.
Default value of element if not set in mesh data file.
Definition at line 344 of file field_fe.hh.
|
private |
DOF handler object.
Definition at line 324 of file field_fe.hh.
|
private |
Specify section where to find the field data in input mesh file.
Definition at line 335 of file field_fe.hh.
|
private |
Definition at line 360 of file field_fe.hh.
|
private |
Holds specific data of field evaluation over all dimensions.
Definition at line 359 of file field_fe.hh.
|
private |
List of FEValues objects of dimensions 0,1,2,3 used for value calculation.
Definition at line 353 of file field_fe.hh.
field name read from input
Definition at line 332 of file field_fe.hh.
|
private |
Field flags.
Definition at line 341 of file field_fe.hh.
|
private |
Accessor to Input::Record.
Definition at line 347 of file field_fe.hh.
|
private |
Input ElementDataCache is stored in set_time and used in all evaluation and interpolation methods.
Definition at line 366 of file field_fe.hh.
|
private |
Specify type of FE data interpolation.
Definition at line 338 of file field_fe.hh.
mesh reader file
Definition at line 329 of file field_fe.hh.
|
private |
Set holds data of valid / invalid element values on all regions.
Definition at line 363 of file field_fe.hh.
Registrar of class to factory.
Definition at line 369 of file field_fe.hh.
|
private |
Maps element indices from computational mesh to the source (data).
Definition at line 356 of file field_fe.hh.
|
static |
Definition at line 81 of file field_fe.hh.