Flow123d
JS_before_hm-1972-g3b0f4cd6d
|
Go to the documentation of this file.
24 #include <boost/circular_buffer.hpp>
63 template <
int spacedim,
class Value>
class FieldFE;
66 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
94 template<
int spacedim,
class Value>
103 static const unsigned int space_dim = spacedim;
140 virtual bool is_active_field_descriptor(
const Input::Record &in_rec,
const std::string &input_name);
149 Field(
const string &name,
bool bc =
false);
157 Field(
unsigned int component_index,
string input_name,
string name =
"",
bool bc =
false);
177 typename Value::return_type operator() (
BulkPoint &p);
181 typename Value::return_type operator() (
EdgePoint &p);
200 IT::Array get_multifield_input_type()
override;
219 void set_mesh(
const Mesh &mesh)
override;
231 bool is_constant(
Region reg)
override;
259 void copy_from(
const FieldCommon & other)
override;
269 void observe_output(std::shared_ptr<Observe> observe)
override;
304 std::string get_value_attribute()
const override;
330 void add_factory(std::shared_ptr<FactoryBase> factory);
347 void cache_reallocate(
const ElementCacheMap &cache_map,
unsigned int region_idx)
const override;
350 void cache_update(
ElementCacheMap &cache_map,
unsigned int region_patch_idx)
const override;
369 typename Value::return_type operator[] (
unsigned int i_cache_point)
const;
375 void update_history(
const TimeStep &time);
380 void check_initialized_region_fields_();
386 std::shared_ptr< FieldFE<spacedim, Value> > get_field_fe();
440 template<
int dim,
class Val>
443 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
458 template<
int spacedim,
class Value>
462 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
464 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
466 "Null field ptr on region id: %d, idx: %d, field: %s\n", elm.
region().
id(), elm.
region_idx().
idx(), name().c_str());
472 template<
int spacedim,
class Value>
476 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
478 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
480 "Null field ptr on region id: %d, field: %s\n", elm.
region().
id(), name().c_str());
483 region_fields_[elm.
region_idx().
idx()]->value_list(point_list,elm, value_list);
base case for building up arguments for the function call
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
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.
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
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
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
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.