163 <<
"Unknown field " << FieldCommon::EI_Field::qval <<
" in the " << EI_FieldType::val <<
": \n");
165 <<
"Field " << FieldCommon::EI_Field::qval <<
" exists in equation. You cannot set user field of same name.\n");
220 FieldSet subset( FieldFlag::Flags::Mask mask)
const;
225 inline unsigned int size()
const {
358 unsigned int region_idx = reg_it.first;
359 for (
auto f_it : reg_it.second) {
360 f_it->cache_reallocate(cache_map, region_idx);
446 template<
int dim,
class Val>
Directing class of FieldValueCache.
Common abstract parent of all Field<...> classes.
virtual void set_mesh(const Mesh &mesh)=0
void mark_input_times(const TimeGovernor &tg)
FieldCommon & flags_add(FieldFlag::Flags::Mask mask)
void set_default_fieldset(FieldSet &default_fs)
virtual void set_input_list(const Input::Array &list, const TimeGovernor &tg)=0
FieldCommon & output_type(OutputTime::DiscreteSpace rt)
void set_components(const std::vector< string > &names)
void set_surface_depth(std::shared_ptr< SurfaceDepth > surface_depth)
Setter of surface_depth data member.
FieldCommon * operator->() const
Dereference operator simplify access to actual field held by accessor.
unsigned int field_component_idx() const
Getter for field_component_idx_.
unsigned int field_idx_
Index of actual Field in field_list.
std::vector< FieldCommon * > field_list_
List of FieldCommon objects (combine Fields and MultiFields.
bool operator==(const FieldListAccessor &other)
Comparison of accessors.
FieldListAccessor(std::vector< FieldCommon * > field_list, unsigned int field_idx)
Constructor.
void inc()
Iterates to next Field.
FieldListAccessor()
Default constructor.
FieldCommon * field() const
Returns pointer to actual field held by accessor.
unsigned int field_component_idx_
Index of subfield in MultiField (fo fields hold only value 0 that is not used)
unsigned int field_idx() const
Getter for field_idx_.
bool operator!=(const FieldListAccessor &other) const
Container for various descendants of FieldCommonBase.
FieldCommon & operator[](const std::string &field_name) const
std::map< unsigned int, std::vector< const FieldCommon * > > region_field_update_order_
static const Input::Type::Record & make_user_field_type(const std::string &equation_name)
Declare input record type of field defined by user.
void set_mesh(const Mesh &mesh)
Range< FieldListAccessor > fields_range() const
Returns range of Fields held in field_list.
FieldDepth depth_
Field holds surface depth for computing of FieldFormulas.
const Mesh * mesh() const
Returns pointer to mesh.
FieldSet()
Default constructor.
const Mesh * mesh_
Pointer to the mesh.
void set_surface_depth(std::shared_ptr< SurfaceDepth > surface_depth)
Set surface depth object to "d" field.
void set_default_fieldset()
FieldCoords X_
Field holds coordinates for computing of FieldFormulas.
TYPEDEF_ERR_INFO(EI_FieldType, std::string)
std::string print_dependency() const
Return order of evaluated fields by dependency and region_idx.
bool is_constant(Region reg) const
void cache_update(ElementCacheMap &cache_map)
DECLARE_INPUT_EXCEPTION(ExcFieldExists,<< "Field "<< FieldCommon::EI_Field::qval<< " exists in equation. You cannot set user field of same name.\n")
void cache_reallocate(const ElementCacheMap &cache_map, FieldSet &used_fieldset)
FieldCommon * field(const std::string &field_name) const
void set_input_list(Input::Array input_list, const TimeGovernor &tg)
void mark_input_times(const TimeGovernor &tg)
static const Input::Type::Selection & get_user_field_shape_selection()
Input selection of user field shape.
bool set_time(const TimeStep &time, LimitSide limit_side)
void output_type(OutputTime::DiscreteSpace rt)
void flags_add(FieldFlag::Flags::Mask mask)
void set_components(const std::vector< string > &names)
bool is_jump_time() const
void set_field(const std::string &dest_field_name, FieldCommon &source)
std::vector< FieldCommon * > field_list
List of all fields.
void set_dependency(FieldSet &used_fieldset)
void topological_sort(const FieldCommon *f, unsigned int i_reg, std::unordered_set< const FieldCommon * > &used_fields)
Helper method sort used fields by dependency.
friend std::ostream & operator<<(std::ostream &stream, const FieldSet &set)
Input::Type::Record make_field_descriptor_type(const std::string &equation_name) const
DECLARE_INPUT_EXCEPTION(ExcUnknownField,<< "Unknown field "<< FieldCommon::EI_Field::qval<< " in the "<< EI_FieldType::val<< ": \n")
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Representation of one time step..
Template Iter serves as general template for internal iterators.
Implementation of range helper class.
Basic time management class.