Flow123d
master-93637712f
|
#include <element_data_cache.hh>
Public Types | |
typedef std::shared_ptr< std::vector< T > > | CacheData |
Public Types inherited from ElementDataCacheBase | |
enum | NumCompValueType { N_SCALAR = 1, N_VECTOR = 3, N_TENSOR = 9 } |
enum | VTKValueType { VTK_INT8, VTK_UINT8, VTK_INT16, VTK_UINT16, VTK_INT32, VTK_UINT32, VTK_FLOAT32, VTK_FLOAT64 } |
Types of VTK value. More... | |
Public Member Functions | |
ElementDataCache () | |
Default constructor. More... | |
ElementDataCache (std::string field_name, double time, unsigned int row_vec_size) | |
Constructor of input ElementDataCache (allow read data from GMSH or VTK file) More... | |
ElementDataCache (std::string field_name, unsigned int n_comp, unsigned int size, std::string fe_type="", unsigned int n_dofs_per_element=1) | |
Constructor of output ElementDataCache (allow write data) More... | |
virtual | ~ElementDataCache () override |
Destructor of ElementDataCache. More... | |
CacheData | get_data () |
Return underlying vector of element data. More... | |
void | read_ascii_data (Tokenizer &tok, unsigned int n_components, unsigned int i_row) override |
Implements ElementDataCacheBase::read_ascii_data . More... | |
void | read_binary_data (std::istream &data_stream, unsigned int n_components, unsigned int i_row) override |
Implements ElementDataCacheBase::read_binary_data . More... | |
void | print_ascii (ostream &out_stream, unsigned int idx) override |
void | print_ascii_all (ostream &out_stream, unsigned int start=0) override |
Print all data stored in output data ro ascii format. More... | |
void | print_binary_all (ostream &out_stream, bool print_data_size=true, unsigned int start=0) override |
Print all data stored in output data to appended binary format. More... | |
void | print_yaml_subarray (ostream &out_stream, unsigned int precision, unsigned int begin, unsigned int end) override |
void | store_value (unsigned int idx, const T *value) |
void | add (unsigned int idx, const T *value) |
void | zero (unsigned int idx) |
void | normalize (unsigned int idx, unsigned int divisor) |
void | get_min_max_range (double &min, double &max) override |
CheckResult | check_values (double default_val, double lower_bound, double upper_bound) |
void | scale_data (double coef) |
std::shared_ptr< ElementDataCacheBase > | gather (Distribution *distr, LongIdx *local_to_global) override |
Implements ElementDataCacheBase::gather. More... | |
std::shared_ptr< ElementDataCacheBase > | element_node_cache_fixed_size (std::vector< unsigned int > &offset_vec) override |
Implements ElementDataCacheBase::element_node_cache_fixed_size. More... | |
std::shared_ptr< ElementDataCacheBase > | element_node_cache_optimize_size (std::vector< unsigned int > &offset_vec) override |
Implements ElementDataCacheBase::element_node_cache_optimize_size. More... | |
std::shared_ptr< ElementDataCacheBase > | compute_node_data (std::vector< unsigned int > &conn_vec, unsigned int data_size) override |
Implements ElementDataCacheBase::compute_node_data. More... | |
T & | operator[] (unsigned int i) |
Access i-th element in the data vector of 0th component. More... | |
Public Member Functions inherited from ElementDataCacheBase | |
ElementDataCacheBase () | |
Constructor. More... | |
virtual | ~ElementDataCacheBase () |
Destructor. More... | |
double | get_time () |
Getter for time of cache. More... | |
std::string | field_input_name () |
Getter for quantity name of cache. More... | |
bool | is_actual (double time, std::string field_name) |
Check if cache stored actual data. More... | |
void | set_field_units (std::string unit_string) |
void | set_n_values (unsigned int n_values) |
std::string | field_units () const |
unsigned int | n_values () const |
bool | is_dummy () const |
unsigned int | n_comp () const |
unsigned int | n_dofs_per_element () const |
VTKValueType | vtk_type () const |
Get type of stored data. More... | |
std::size_t | dof_handler_hash () const |
void | set_dof_handler_hash (std::size_t hash) |
std::string | fe_type () const |
Static Public Member Functions | |
static CacheData | create_data_cache (unsigned int row_vec_size) |
Protected Types | |
enum | CheckScaleData { none, check, scale } |
Allow to hold sign, if data in cache is checked and scale (both can be executed only once) More... | |
Protected Member Functions | |
MPI_Datatype | mpi_data_type () |
Return MPI data type corresponding with template parameter of cache. Needs template specialization. More... | |
MPI_Datatype | mpi_data_type () |
MPI_Datatype | mpi_data_type () |
MPI_Datatype | mpi_data_type () |
Protected Member Functions inherited from ElementDataCacheBase | |
template<class T > | |
void | set_vtk_type () |
Protected Attributes | |
CheckScaleData | check_scale_data_ |
Sign, if data in cache is checked and scale. More... | |
CacheData | data_ |
Protected Attributes inherited from ElementDataCacheBase | |
double | time_ |
time step stored in cache More... | |
std::string | field_input_name_ |
name of field stored in cache More... | |
std::string | field_name_ |
std::string | field_units_ |
unsigned int | n_values_ |
unsigned int | n_comp_ |
VTKValueType | vtk_type_ |
Type of stored data. More... | |
std::size_t | dof_handler_hash_ |
Hash of DOF handler (attribute of native VTK data) More... | |
std::string | fe_type_ |
unsigned int | n_dofs_per_element_ |
bool | is_dummy_ |
Is true for DummyElementDataCache. More... | |
Definition at line 44 of file element_data_cache.hh.
typedef std::shared_ptr< std::vector<T> > ElementDataCache< T >::CacheData |
Container of the field data on elements used as a common data storage for output of various fields using various output formats and to cache data of several fields when reading the input file. This container also perform serialization for the serial output. Read of values from tokenizer and output of values to stream is implemented as it depends on the value type T.
Definition at line 52 of file element_data_cache.hh.
|
protected |
Allow to hold sign, if data in cache is checked and scale (both can be executed only once)
Enumerator | |
---|---|
none | Data is neither checked nor scaled. |
check | Data is only checked. |
scale | Data is scaled. |
Definition at line 187 of file element_data_cache.hh.
ElementDataCache< T >::ElementDataCache |
Default constructor.
Definition at line 32 of file element_data_cache.cc.
ElementDataCache< T >::ElementDataCache | ( | std::string | field_name, |
double | time, | ||
unsigned int | row_vec_size | ||
) |
Constructor of input ElementDataCache (allow read data from GMSH or VTK file)
Allows set variable size of cache.
field_name | Field name thas is read |
time | Actual time of data |
row_vec_size | Count of rows of data cache |
Definition at line 38 of file element_data_cache.cc.
ElementDataCache< T >::ElementDataCache | ( | std::string | field_name, |
unsigned int | n_comp, | ||
unsigned int | size, | ||
std::string | fe_type = "" , |
||
unsigned int | n_dofs_per_element = 1 |
||
) |
Constructor of output ElementDataCache (allow write data)
Has fix size of cache.
field_name | Field name is written as parameter to output stream |
n_comp | Given from shape of field |
size | Count of rows of data cache |
fe_type | FiniteElement type (used only for native data) |
n_dofs_per_element | Number of DOFs per element (used only for native data) |
Definition at line 49 of file element_data_cache.cc.
|
overridevirtual |
Destructor of ElementDataCache.
Definition at line 67 of file element_data_cache.cc.
void ElementDataCache< T >::add | ( | unsigned int | idx, |
const T * | value | ||
) |
Add value to given index
Definition at line 223 of file element_data_cache.cc.
CheckResult ElementDataCache< T >::check_values | ( | double | default_val, |
double | lower_bound, | ||
double | upper_bound | ||
) |
Make full check of data stored in cache.
Method iterates through data and
Method is executed only once.
Definition at line 259 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::compute_node_data.
Implements ElementDataCacheBase.
Definition at line 394 of file element_data_cache.cc.
|
static |
Create data cache with given count rows (row_vec_size
).
Definition at line 77 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_fixed_size.
Implements ElementDataCacheBase.
Definition at line 346 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_optimize_size.
Implements ElementDataCacheBase.
Definition at line 371 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::gather.
Implements ElementDataCacheBase.
Definition at line 293 of file element_data_cache.cc.
ElementDataCache< T >::CacheData ElementDataCache< T >::get_data |
Return underlying vector of element data.
Definition at line 71 of file element_data_cache.cc.
|
overridevirtual |
Find minimal and maximal range of stored data
Implements ElementDataCacheBase.
Definition at line 192 of file element_data_cache.cc.
|
protected |
Return MPI data type corresponding with template parameter of cache. Needs template specialization.
|
protected |
Definition at line 421 of file element_data_cache.cc.
|
protected |
Definition at line 426 of file element_data_cache.cc.
|
protected |
Definition at line 431 of file element_data_cache.cc.
void ElementDataCache< T >::normalize | ( | unsigned int | idx, |
unsigned int | divisor | ||
) |
Normalize values at given index
Definition at line 249 of file element_data_cache.cc.
T & ElementDataCache< T >::operator[] | ( | unsigned int | i | ) |
Access i-th element in the data vector of 0th component.
Access i-th element in the data vector.
Definition at line 438 of file element_data_cache.cc.
|
overridevirtual |
Output data element on given index idx
. Method for writing data to output stream.
Implements ElementDataCacheBase.
Definition at line 113 of file element_data_cache.cc.
|
overridevirtual |
Print all data stored in output data ro ascii format.
Print all data stored in output data.
TODO: indicate if the tensor data are output in column-first or raw-first order and possibly implement transposition. Set such property for individual file formats. Class OutputData stores always in raw-first order.
Implements ElementDataCacheBase.
Definition at line 129 of file element_data_cache.cc.
|
overridevirtual |
Print all data stored in output data to appended binary format.
Prints the whole data vector into stream.
Implements ElementDataCacheBase.
Definition at line 141 of file element_data_cache.cc.
|
overridevirtual |
Print stored values in the YAML format (using JSON like arrays). Used for output of observe values.
Implements ElementDataCacheBase.
Definition at line 158 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_ascii_data
.
Implements ElementDataCacheBase.
Definition at line 85 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_binary_data
.
Implements ElementDataCacheBase.
Definition at line 97 of file element_data_cache.cc.
void ElementDataCache< T >::scale_data | ( | double | coef | ) |
Scale data vector of given 'component_idx' with scale 'coef'.
Method is executed only once and should be called after check_values method. Method can be used e. g. for convert between units.
Definition at line 279 of file element_data_cache.cc.
void ElementDataCache< T >::store_value | ( | unsigned int | idx, |
const T * | value | ||
) |
Store data element of given data value under given index.
Definition at line 210 of file element_data_cache.cc.
void ElementDataCache< T >::zero | ( | unsigned int | idx | ) |
Reset values at given index
Definition at line 236 of file element_data_cache.cc.
|
protected |
Sign, if data in cache is checked and scale.
Definition at line 198 of file element_data_cache.hh.
|
protected |
Table of element data.
For every components contains vector of element data.
Definition at line 205 of file element_data_cache.hh.