161 DECLARE_EXCEPTION(ExcUnknownField, <<
"Field set has no field with name: " << FieldCommon::EI_Field::qval);
197 FieldSet subset( FieldFlag::Flags::Mask mask)
const;
202 inline unsigned int size()
const {
203 return field_list.size();
249 void set_field(
const std::string &dest_field_name,
FieldCommon &source);
260 FieldCommon &operator[](
const std::string &field_name)
const;
317 bool changed()
const;
322 bool is_constant(
Region reg)
const;
327 bool is_jump_time()
const;
333 this->set_dependency(used_fieldset);
334 for (
auto reg_it : region_field_update_order_) {
335 unsigned int region_idx = reg_it.first;
336 for (
auto f_it : reg_it.second) {
337 f_it->cache_reallocate(cache_map, region_idx);
351 void set_dependency(
FieldSet &used_fieldset);
359 void add_coords_field();
363 depth_.set_surface_depth( surface_depth );
375 std::string print_dependency()
const;
380 void topological_sort(
const FieldCommon *f,
unsigned int i_reg, std::unordered_set<const FieldCommon *> &used_fields);
407 template<
int dim,
class Val>
void output_type(OutputTime::DiscreteSpace rt)
std::vector< FieldCommon * > field_list
List of all fields.
FieldDepth depth_
Field holds surface depth for computing of FieldFormulas.
Common abstract parent of all Field<...> classes.
Container for various descendants of FieldCommonBase.
std::map< unsigned int, std::vector< const FieldCommon * > > region_field_update_order_
std::vector< FieldCommon * > field_list_
List of FieldCommon objects (combine Fields and MultiFields.
const Mesh * mesh_
Pointer to the mesh.
FieldCoords X_
Field holds coordinates for computing of FieldFormulas.
FieldCommon & flags_add(FieldFlag::Flags::Mask mask)
#define DECLARE_EXCEPTION(ExcName, Format)
Macro for simple definition of exceptions.
const Mesh * mesh() const
Returns pointer to mesh.
Directing class of FieldValueCache.
Template Iter serves as general template for internal iterators.
bool operator==(const FieldListAccessor &other)
Comparison of accessors.
void mark_input_times(const TimeGovernor &tg)
FieldListAccessor(std::vector< FieldCommon * > field_list, unsigned int field_idx)
Constructor.
unsigned int field_component_idx_
Index of subfield in MultiField (fo fields hold only value 0 that is not used)
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Basic time management class.
unsigned int field_component_idx() const
Getter for field_component_idx_.
FieldListAccessor()
Default constructor.
void cache_reallocate(const ElementCacheMap &cache_map, FieldSet &used_fieldset)
bool operator!=(const FieldListAccessor &other) const
void inc()
Iterates to next Field.
unsigned int field_idx_
Index of actual Field in field_list.
STREAM & operator<<(STREAM &s, UpdateFlags u)
unsigned int field_idx() const
Getter for field_idx_.
void mark_input_times(const TimeGovernor &tg)
virtual void set_mesh(const Mesh &mesh)=0
virtual void set_input_list(const Input::Array &list, const TimeGovernor &tg)=0
void set_input_list(Input::Array input_list, const TimeGovernor &tg)
void set_components(const std::vector< string > &names)
void set_surface_depth(std::shared_ptr< SurfaceDepth > surface_depth)
Set surface depth object to "d" field.
void set_mesh(const Mesh &mesh)
void set_components(const std::vector< string > &names)
FieldCommon * field() const
Returns pointer to actual field held by accessor.
FieldCommon * operator->() const
Dereference operator simplify access to actual field held by accessor.
Representation of one time step..
void flags_add(FieldFlag::Flags::Mask mask)
Implementation of range helper class.
FieldCommon & output_type(OutputTime::DiscreteSpace rt)