18 #ifndef ELEMENT_DATA_CACHE_HH_ 19 #define ELEMENT_DATA_CACHE_HH_ 21 #include <boost/exception/info.hpp> 30 struct MeshDataHeader;
60 ElementDataCache(std::string field_name,
double time,
unsigned int size_of_cache,
unsigned int row_vec_size);
72 ElementDataCache(std::string field_name,
unsigned int n_rows,
unsigned int n_cols,
unsigned int size);
85 static CacheData
create_data_cache(
unsigned int size_of_cache,
unsigned int row_vec_size);
88 void read_ascii_data(Tokenizer &tok,
unsigned int n_components,
unsigned int i_row)
override;
91 void read_binary_data(std::istream &data_stream,
unsigned int n_components,
unsigned int i_row)
override;
99 void print_ascii(ostream &out_stream,
unsigned int idx)
override;
113 void print_binary_all(ostream &out_stream,
bool print_data_size =
true)
override;
115 void print_all_yaml(ostream &out_stream,
unsigned int precision)
override;
125 void add(
unsigned int idx,
const T *
value);
130 void zero(
unsigned int idx);
135 void normalize(
unsigned int idx,
unsigned int divisor);
174 DECLARE_EXCEPTION(ExcOutputVariableVector, <<
"Can not output field " << EI_FieldName::qval
175 <<
" returning variable size vectors. Try convert to MultiField.\n");
void read_binary_data(std::istream &data_stream, unsigned int n_components, unsigned int i_row) override
Implements ElementDataCacheBase::read_binary_data.
std::shared_ptr< std::vector< T > > ComponentDataPtr
CheckScaleData
Allow to hold sign, if data in cache is checked and scale (both can be executed only once) ...
void print_ascii(ostream &out_stream, unsigned int idx) override
CheckScaleData check_scale_data_
Sign, if data in cache is checked and scale.
Some value(s) is set to NaN.
TYPEDEF_ERR_INFO(EI_FieldName, std::string)
std::vector< ComponentDataPtr > CacheData
void store_value(unsigned int idx, const T *value)
T & operator[](unsigned int i)
Access i-th element in the data vector of 0th component.
void read_ascii_data(Tokenizer &tok, unsigned int n_components, unsigned int i_row) override
Implements ElementDataCacheBase::read_ascii_data.
Some value(s) is out of limits.
static constexpr bool value
ElementDataCache()
Default constructor.
void get_min_max_range(double &min, double &max) override
void add(unsigned int idx, const T *value)
virtual ~ElementDataCache() override
Destructor of ElementDataCache.
static CacheData create_data_cache(unsigned int size_of_cache, unsigned int row_vec_size)
void zero(unsigned int idx)
void scale_data(double coef)
DECLARE_EXCEPTION(ExcOutputVariableVector,<< "Can not output field "<< EI_FieldName::qval<< " returning variable size vectors. Try convert to MultiField.\n")
void print_all_yaml(ostream &out_stream, unsigned int precision) override
Data is neither checked nor scaled.
CheckResult
Return type of method that checked data stored in ElementDataCache (NaN values, limits) ...
CheckResult check_values(double default_val, double lower_bound, double upper_bound)
void normalize(unsigned int idx, unsigned int divisor)
void print_binary_all(ostream &out_stream, bool print_data_size=true) override
Print all data stored in output data to appended binary format.
ComponentDataPtr get_component_data(unsigned int component_idx)
Return vector of element data for get component.
void print_ascii_all(ostream &out_stream) override
Print all data stored in output data ro ascii format.
All values are not NaN and are in limits.