24 #include <boost/circular_buffer.hpp> 61 template<
int spacedim,
class Value>
70 static const unsigned int space_dim = spacedim;
107 virtual bool is_active_field_descriptor(
const Input::Record &in_rec,
const std::string &input_name);
116 Field(
const string &name,
bool bc =
false);
124 Field(
unsigned int component_index,
string input_name,
string name =
"",
bool bc =
false);
151 IT::Array get_multifield_input_type()
override;
170 void set_mesh(
const Mesh &mesh)
override;
182 bool is_constant(
Region reg)
override;
193 void set_field(
const RegionSet &domain, FieldBasePtr field,
double time=0.0);
212 void copy_from(
const FieldCommon & other)
override;
217 void output(std::shared_ptr<OutputTime> stream)
override;
222 void observe_output(std::shared_ptr<Observe> observe)
override;
251 std::string get_value_attribute()
const override;
277 void add_factory(std::shared_ptr<FactoryBase> factory);
287 void update_history(
const TimeStep &time);
294 void check_initialized_region_fields_();
334 template<
int dim,
class Val>
349 template<
int spacedim,
class Value>
355 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(),
name().c_str());
363 template<
int spacedim,
class Value>
369 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(),
name().c_str());
371 "Null field ptr on region id: %d, field: %s\n", elm.
region().
id(),
name().c_str());
373 region_fields_[elm.
region_idx().
idx()]->value_list(point_list,elm, value_list);
Common abstract parent of all Field<...> classes.
pair< double, FieldBasePtr > HistoryPoint
Pair: time, pointer to FieldBase instance.
Class template representing a field with values dependent on: point, element, and region...
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library...
virtual void value_list(const std::vector< Point > &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename Value::return_type > &value_list) const
Basic time management class.
std::shared_ptr< SharedData > data_
static constexpr bool value
const std::string & name() const
FieldAlgorithmBase< spacedim, Value >::Point Point
std::shared_ptr< ControlField > no_check_control_field_
virtual Value::return_type const & value(const Point &p, const ElementAccessor< spacedim > &elm) const
The class for outputting data during time.
Space< spacedim >::Point Point
std::vector< FieldBasePtr > region_fields_
std::shared_ptr< FieldBaseType > FieldBasePtr
FieldAlgorithmBase< spacedim, Value > FieldBaseType
std::vector< std::shared_ptr< FactoryBase > > factories_
boost::circular_buffer< HistoryPoint > RegionHistory
Nearest history of one region.
RegionIdx region_idx() const
Field< spacedim, typename FieldValue< spacedim >::Enum > ControlField
Class for representation of a vector of fields of the same physical quantity.
Representation of one time step..
TimeStatus set_time_result_
unsigned int id() const
Returns id of the region (using RegionDB)
virtual void value_list(const std::vector< Point > &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename MultiFieldValue::return_type > &value_list) const
unsigned int idx() const
Returns a global index of the region.
std::vector< RegionHistory > region_history_