Flow123d
JS_before_hm-2089-g888cb2de4
|
Go to the documentation of this file.
24 #include <boost/circular_buffer.hpp>
61 template <
int spacedim,
class Value>
class FieldFE;
64 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
92 template<
int spacedim,
class Value>
101 static const unsigned int space_dim = spacedim;
138 virtual bool is_active_field_descriptor(
const Input::Record &in_rec,
const std::string &input_name);
147 Field(
const string &name,
bool bc =
false);
155 Field(
unsigned int component_index,
string input_name,
string name =
"",
bool bc =
false);
175 typename Value::return_type operator() (
BulkPoint &p);
179 typename Value::return_type operator() (
SidePoint &p);
190 IT::Array get_multifield_input_type()
override;
209 void set_mesh(
const Mesh &mesh)
override;
221 bool is_constant(
Region reg)
override;
249 void copy_from(
const FieldCommon & other)
override;
259 void observe_output(std::shared_ptr<Observe> observe)
override;
294 std::string get_value_attribute()
const override;
320 void add_factory(std::shared_ptr<FactoryBase> factory);
337 void cache_reallocate(
const ElementCacheMap &cache_map,
unsigned int region_idx)
const override;
340 void cache_update(
ElementCacheMap &cache_map,
unsigned int region_patch_idx)
const override;
359 typename Value::return_type operator[] (
unsigned int i_cache_point)
const;
365 void update_history(
const TimeStep &time);
370 void check_initialized_region_fields_();
376 std::shared_ptr< FieldFE<spacedim, Value> > get_field_fe();
430 template<
int dim,
class Val>
433 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
448 template<
int spacedim,
class Value>
452 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
454 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
456 "Null field ptr on region id: %d, idx: %d, field: %s\n", elm.
region().
id(), elm.
region_idx().
idx(), name().c_str());
462 template<
int spacedim,
class Value>
466 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
468 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
470 "Null field ptr on region id: %d, field: %s\n", elm.
region().
id(), name().c_str());
473 region_fields_[elm.
region_idx().
idx()]->value_list(point_list,elm, value_list);
base case for building up arguments for the function call
std::vector< RegionHistory > region_history_
pair< double, FieldBasePtr > HistoryPoint
Pair: time, pointer to FieldBase instance.
Basic time management class.
FieldValueCache< typename Value::element_type > value_cache_
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library.
Directing class of FieldValueCache.
static constexpr bool value
Base point accessor class.
std::shared_ptr< ElementDataCache< typename Value::element_type > > output_data_cache_
ElementDataCache used during field output, object is shared with OutputTime.
General point a+ side_begin_ + ccessor allow iterate over quadrature points of given side defined in ...
unsigned int idx() const
Returns a global index of the region.
Space< spacedim >::Point Point
unsigned int id() const
Returns id of the region (using RegionDB)
FieldAlgorithmBase< spacedim, Value >::Point Point
Representation of one time step..
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Common abstract parent of all Field<...> classes.
std::shared_ptr< SharedData > data_
std::vector< std::shared_ptr< FactoryBase > > factories_
std::vector< FieldBasePtr > region_fields_
Container for various descendants of FieldCommonBase.
boost::circular_buffer< HistoryPoint > RegionHistory
Nearest history of one region.
virtual const Value::return_type & value(const Point &p, const ElementAccessor< spacedim > &elm) const
std::shared_ptr< FieldBaseType > FieldBasePtr
FieldAlgorithmBase< spacedim, Value > FieldBaseType
std::shared_ptr< ControlField > no_check_control_field_
virtual void value_list(const Armor::array &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename Value::return_type > &value_list) const
Global macros to enhance readability and debugging, general constants.
Class for representation of a vector of fields of the same physical quantity.
Class template representing a field with values dependent on: point, element, and region.
RegionIdx region_idx() const
Field< spacedim, typename FieldValue< spacedim >::Enum > ControlField
Class holds local coordinations of evaluating points (bulk and sides) specified by element dimension.