Flow123d
master-f7bc289
|
#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, unsigned int boundary_begin) | |
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 |
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 |
unsigned int | get_boundary_begin () const |
Returns start position of boundary data in cache. More... | |
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 () |
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... | |
unsigned int | boundary_begin_ |
Start position of boundary data in cache. 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 167 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, | ||
unsigned int | boundary_begin | ||
) |
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 50 of file element_data_cache.cc.
|
overridevirtual |
Destructor of ElementDataCache.
Definition at line 69 of file element_data_cache.cc.
void ElementDataCache< T >::add | ( | unsigned int | idx, |
const T * | value | ||
) |
Add value to given index
Definition at line 225 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::compute_node_data.
Implements ElementDataCacheBase.
Definition at line 362 of file element_data_cache.cc.
|
static |
Create data cache with given count rows (row_vec_size
).
Definition at line 79 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_fixed_size.
Implements ElementDataCacheBase.
Definition at line 314 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::element_node_cache_optimize_size.
Implements ElementDataCacheBase.
Definition at line 339 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::gather.
Implements ElementDataCacheBase.
Definition at line 261 of file element_data_cache.cc.
ElementDataCache< T >::CacheData ElementDataCache< T >::get_data |
Return underlying vector of element data.
Definition at line 73 of file element_data_cache.cc.
|
overridevirtual |
Find minimal and maximal range of stored data
Implements ElementDataCacheBase.
Definition at line 194 of file element_data_cache.cc.
|
protected |
Definition at line 394 of file element_data_cache.cc.
|
protected |
Definition at line 399 of file element_data_cache.cc.
|
protected |
Return MPI data type corresponding with template parameter of cache. Needs template specialization.
void ElementDataCache< T >::normalize | ( | unsigned int | idx, |
unsigned int | divisor | ||
) |
Normalize values at given index
Definition at line 251 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 406 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 115 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 131 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 143 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 160 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_ascii_data
.
Implements ElementDataCacheBase.
Definition at line 87 of file element_data_cache.cc.
|
overridevirtual |
Implements ElementDataCacheBase::read_binary_data
.
Implements ElementDataCacheBase.
Definition at line 99 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 212 of file element_data_cache.cc.
void ElementDataCache< T >::zero | ( | unsigned int | idx | ) |
Reset values at given index
Definition at line 238 of file element_data_cache.cc.
|
protected |
Sign, if data in cache is checked and scale.
Definition at line 178 of file element_data_cache.hh.
|
protected |
Table of element data.
For every components contains vector of element data.
Definition at line 185 of file element_data_cache.hh.