Flow123d
release_3.0.0-1094-g626f1a1
|
#include <element_data_cache.hh>
Public Types | |
typedef std::shared_ptr< std::vector< T > > | ComponentDataPtr |
typedef std::vector< ComponentDataPtr > | 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 size_of_cache, 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) | |
Constructor of output ElementDataCache (allow write data) More... | |
virtual | ~ElementDataCache () override |
Destructor of ElementDataCache. More... | |
ComponentDataPtr | get_component_data (unsigned int component_idx) |
Return vector of element data for get component. 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) override |
Print all data stored in output data ro ascii format. More... | |
void | print_binary_all (ostream &out_stream, bool print_data_size=true) override |
Print all data stored in output data to appended binary format. More... | |
void | print_all_yaml (ostream &out_stream, unsigned int precision) 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 |
unsigned int | n_comp () 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) |
Static Public Member Functions | |
static CacheData | create_data_cache (unsigned int size_of_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... | |
template<> | |
MPI_Datatype | mpi_data_type () |
template<> | |
MPI_Datatype | mpi_data_type () |
template<> | |
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... | |
Definition at line 44 of file element_data_cache.hh.
typedef std::vector< ComponentDataPtr > ElementDataCache< T >::CacheData |
Definition at line 53 of file element_data_cache.hh.
typedef std::shared_ptr< std::vector<T> > ElementDataCache< T >::ComponentDataPtr |
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 | size_of_cache, | ||
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 |
size_of_cache | Count of columns of data cache |
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 | ||
) |
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 |
Definition at line 48 of file element_data_cache.cc.
|
overridevirtual |
Destructor of ElementDataCache.
Definition at line 64 of file element_data_cache.cc.
void ElementDataCache< T >::add | ( | unsigned int | idx, |
const T * | value | ||
) |
Add value to given index
Definition at line 231 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 267 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::compute_node_data.
Implements ElementDataCacheBase.
Definition at line 406 of file element_data_cache.cc.
|
static |
Create data cache with given count of columns (size_of_cache
) and rows (row_vec_size
).
Definition at line 75 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_fixed_size.
Implements ElementDataCacheBase.
Definition at line 358 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_optimize_size.
Implements ElementDataCacheBase.
Definition at line 383 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::gather.
Implements ElementDataCacheBase.
Definition at line 305 of file element_data_cache.cc.
ElementDataCache< T >::ComponentDataPtr ElementDataCache< T >::get_component_data | ( | unsigned int | component_idx | ) |
Return vector of element data for get component.
Definition at line 68 of file element_data_cache.cc.
|
overridevirtual |
Find minimal and maximal range of stored data
Implements ElementDataCacheBase.
Definition at line 200 of file element_data_cache.cc.
|
protected |
Return MPI data type corresponding with template parameter of cache. Needs template specialization.
|
protected |
Definition at line 433 of file element_data_cache.cc.
|
protected |
Definition at line 438 of file element_data_cache.cc.
|
protected |
Definition at line 443 of file element_data_cache.cc.
void ElementDataCache< T >::normalize | ( | unsigned int | idx, |
unsigned int | divisor | ||
) |
Normalize values at given index
Definition at line 257 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 450 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 166 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 121 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 137 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 149 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_ascii_data
.
Implements ElementDataCacheBase.
Definition at line 88 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_binary_data
.
Implements ElementDataCacheBase.
Definition at line 102 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 289 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 218 of file element_data_cache.cc.
void ElementDataCache< T >::zero | ( | unsigned int | idx | ) |
Reset values at given index
Definition at line 244 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.