Flow123d
JS_before_hm-1873-g0cc6cc928
|
#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, 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... | |
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, 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 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... | |
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::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 189 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, | ||
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 235 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 271 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::compute_node_data.
Implements ElementDataCacheBase.
Definition at line 410 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 78 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_fixed_size.
Implements ElementDataCacheBase.
Definition at line 362 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_optimize_size.
Implements ElementDataCacheBase.
Definition at line 387 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::gather.
Implements ElementDataCacheBase.
Definition at line 309 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 71 of file element_data_cache.cc.
|
overridevirtual |
Find minimal and maximal range of stored data
Implements ElementDataCacheBase.
Definition at line 204 of file element_data_cache.cc.
|
protected |
Return MPI data type corresponding with template parameter of cache. Needs template specialization.
|
protected |
Definition at line 437 of file element_data_cache.cc.
|
protected |
Definition at line 442 of file element_data_cache.cc.
|
protected |
Definition at line 447 of file element_data_cache.cc.
void ElementDataCache< T >::normalize | ( | unsigned int | idx, |
unsigned int | divisor | ||
) |
Normalize values at given index
Definition at line 261 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 454 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 125 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 141 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 153 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 170 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_ascii_data
.
Implements ElementDataCacheBase.
Definition at line 91 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_binary_data
.
Implements ElementDataCacheBase.
Definition at line 106 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 293 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 222 of file element_data_cache.cc.
void ElementDataCache< T >::zero | ( | unsigned int | idx | ) |
Reset values at given index
Definition at line 248 of file element_data_cache.cc.
|
protected |
Sign, if data in cache is checked and scale.
Definition at line 200 of file element_data_cache.hh.
|
protected |
Table of element data.
For every components contains vector of element data.
Definition at line 207 of file element_data_cache.hh.