24 #include <boost/circular_buffer.hpp>
60 template <
int spacedim,
class Value>
class FieldFE;
63 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
91 template<
int spacedim,
class Value>
100 static const unsigned int space_dim = spacedim;
137 virtual bool is_active_field_descriptor(
const Input::Record &in_rec,
const std::string &input_name);
146 Field(
const string &name);
154 Field(
unsigned int component_index,
string input_name,
string name =
"");
174 typename Value::return_type operator() (
BulkPoint &p);
178 typename Value::return_type operator() (
SidePoint &p);
189 IT::Array get_multifield_input_type()
override;
208 void set_mesh(
const Mesh &mesh)
override;
220 bool is_constant(
Region reg)
override;
248 void copy_from(
const FieldCommon & other)
override;
264 std::shared_ptr< FieldFE<spacedim, Value> > get_field_fe();
294 std::string get_value_attribute()
const override;
306 void add_factory(std::shared_ptr<FactoryBase> factory);
323 void cache_reallocate(
const ElementCacheMap &cache_map,
unsigned int region_idx)
const override;
326 void cache_update(
ElementCacheMap &cache_map,
unsigned int region_patch_idx)
const override;
343 void fill_observe_value(std::shared_ptr<ElementDataCacheBase> output_cache_base,
const std::vector<int> &offsets)
override;
348 typename Value::return_type operator[] (
unsigned int i_cache_point)
const;
354 void update_history(
const TimeStep &time);
359 void check_initialized_region_fields_();
413 template<
int dim,
class Val>
416 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
Base point accessor class.
Directing class of FieldValueCache.
Class holds local coordinations of evaluating points (bulk and sides) specified by element dimension.
Space< spacedim >::Point Point
Common abstract parent of all Field<...> classes.
Container for various descendants of FieldCommonBase.
Class template representing a field with values dependent on: point, element, and region.
FieldValueCache< typename Value::element_type > value_cache_
FieldAlgorithmBase< spacedim, Value >::Point Point
Field< spacedim, typename FieldValue< spacedim >::Enum > ControlField
FieldAlgorithmBase< spacedim, Value > FieldBaseType
pair< double, FieldBasePtr > HistoryPoint
Pair: time, pointer to FieldBase instance.
boost::circular_buffer< HistoryPoint > RegionHistory
Nearest history of one region.
std::shared_ptr< ElementDataCache< typename Value::element_type > > output_data_cache_
ElementDataCache used during field output, object is shared with OutputTime.
std::shared_ptr< SharedData > data_
std::shared_ptr< ControlField > no_check_control_field_
std::vector< std::shared_ptr< FactoryBase > > factories_
std::shared_ptr< FieldBaseType > FieldBasePtr
std::vector< FieldBasePtr > region_fields_
Class for representation of a vector of fields of the same physical quantity.
General point a+ side_begin_ + ccessor allow iterate over quadrature points of given side defined in ...
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Representation of one time step..
std::vector< RegionHistory > region_history_
base case for building up arguments for the function call
Basic time management class.