Flow123d
JS_before_hm-1712-g4d968e368
|
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);
341 void cache_reallocate(
const ElementCacheMap &cache_map,
unsigned int region_idx)
const override;
344 void cache_update(
ElementCacheMap &cache_map,
unsigned int region_patch_idx)
const override;
360 typename Value::return_type operator[] (
unsigned int i_cache_point)
const;
366 void update_history(
const TimeStep &time);
370 std::shared_ptr<OutputTime> stream,
376 void check_initialized_region_fields_();
382 std::shared_ptr< FieldFE<spacedim, Value> > get_field_fe();
433 template<
int dim,
class Val>
436 template<
typename CALLABLE,
typename TUPLE,
int INDEX >
451 template<
int spacedim,
class Value>
455 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
457 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
459 "Null field ptr on region id: %d, idx: %d, field: %s\n", elm.
region().
id(), elm.
region_idx().
idx(), name().c_str());
465 template<
int spacedim,
class Value>
469 ASSERT(this->set_time_result_ != TimeStatus::unknown)(this->name()).error(
"Unknown time status.\n");
471 elm.
region_idx().
idx(), (
unsigned long int) region_fields_.size(), name().c_str());
473 "Null field ptr on region id: %d, field: %s\n", elm.
region().
id(), name().c_str());
476 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
Point accessor allow iterate over bulk quadrature points defined in local element coordinates.
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)
std::array< bool, 4 > DiscreteSpaceFlags
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.