Flow123d
release_3.0.0-873-g1d64664
|
#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 47 of file element_data_cache.hh.
typedef std::shared_ptr< std::vector<T> > ElementDataCache< T >::ComponentDataPtr |
Definition at line 46 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 181 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 192 of file element_data_cache.hh.
|
protected |
Table of element data.
For every components contains vector of element data.
Definition at line 199 of file element_data_cache.hh.