Flow123d
JS_before_hm-1881-gd692239a6
|
Go to the documentation of this file.
24 #include <boost/algorithm/string/replace.hpp>
34 OLD_ASSERT(&add_field==found_field,
"Another field of the same name exists when adding field: %s\n",
35 add_field.
name().c_str());
45 for(
auto field_ptr : other.
field_list) this->operator +=(*field_ptr);
54 for(
auto name : names) set += (*this)[name];
60 FieldSet FieldSet::subset( FieldFlag::Flags::Mask mask)
const {
70 string rec_name = equation_name +
":Data";
87 std::shared_ptr<Input::Type::TypeBase> field_type_ptr;
99 if (default_val !=
"") {
100 boost::replace_all(default_val,
"\"",
"\\\"");
141 auto &
field = (*this)[dest_field_name];
157 if (found_field)
return *found_field;
159 THROW(ExcUnknownField() << FieldCommon::EI_Field(field_name));
165 bool changed_all=
false;
173 bool changed_all=
false;
188 bool is_jump =
false;
196 for (
unsigned int i_reg_patch=0; i_reg_patch<cache_map.
n_regions(); ++i_reg_patch) {
205 std::unordered_set<const FieldCommon *> used_fields;
207 unordered_map<std::string, unsigned int>::iterator
it;
208 for (
unsigned int i_reg=0; i_reg<
mesh_->
region_db().size(); ++i_reg) {
218 if (used_fields.find(f) != used_fields.end() )
return;
219 used_fields.insert(f);
221 for (
auto f_dep : dep_vec) {
256 s <<
"\nregion_idx " << reg_it.first <<
": ";
257 for (
auto f_it : reg_it.second) {
258 s << f_it->name() <<
", ";
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
FieldCommon & operator[](const std::string &field_name) const
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc.
bool is_jump_time() const
bool set_time(const TimeStep &time, LimitSide limit_side)
bool is_constant(Region reg) const
#define ASSERT_GT_DBG(a, b)
Definition of comparative assert macro (Greater Than) only for debug mode.
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library.
Directing class of FieldValueCache.
void set_dependency(FieldSet &used_fieldset)
virtual void copy_from(const FieldCommon &other)=0
#define THROW(whole_exception_expr)
Wrapper for throw. Saves the throwing point.
Range< FieldListAccessor > fields_range() const
Returns range of Fields held in field_list.
std::map< unsigned int, std::vector< const FieldCommon * > > region_field_update_order_
virtual bool set_time(const TimeStep &time, LimitSide limit_side)=0
FieldCommon & flags(FieldFlag::Flags::Mask mask)
std::ostream & operator<<(std::ostream &stream, const FieldSet &set)
static string field_value_shape()
static string field_unit()
static IT::Record field_descriptor_record(const string &record_name)
std::vector< FieldCommon * > field_list
List of all fields.
FieldCoords X_
Field holds coordinates for computing of FieldFormulas.
void topological_sort(const FieldCommon *f, unsigned int i_reg, std::unordered_set< const FieldCommon * > &used_fields)
Helper method sort used fields by dependency.
std::string print_dependency() const
Return order of evaluated fields by dependency and region_idx.
virtual std::string get_value_attribute() const =0
Representation of one time step..
const Mesh * mesh_
Pointer to the mesh.
Implementation of bidirectional map.
Common abstract parent of all Field<...> classes.
Class for representation SI units of Fields.
const RegionDB & region_db() const
virtual std::vector< const FieldCommon * > set_dependency(FieldSet &field_set, unsigned int i_reg) const =0
static const std::string field_descriptor_record_description(const string &record_name)
void cache_update(ElementCacheMap &cache_map)
Container for various descendants of FieldCommonBase.
static constexpr Mask input_copy
void set_field_coords(FieldCoords *field_coords)
Setter of field_coords data member.
bool is_multifield() const
FieldCommon & input_default(const string &input_default)
virtual IT::Instance get_input_type()=0
unsigned int region_idx_from_chunk_position(unsigned int chunk_pos) const
Return begin position of region chunk specified by position in map.
static string field_default_value()
void set_mesh(const Mesh &mesh)
virtual IT::Array get_multifield_input_type()=0
static constexpr Mask declare_input
The field can be set from input. The key in input field descriptor is declared. (default on)
FieldSet()
Default constructor.
Class MappingP1 implements the affine transformation of the unit cell onto the actual cell.
const std::string & input_name() const
void set_field(const std::string &dest_field_name, FieldCommon &source)
FieldCommon & description(const string &description)
virtual void cache_update(ElementCacheMap &cache_map, unsigned int region_patch_idx) const =0
FieldDepth depth_
Field holds surface depth for computing of FieldFormulas.
Input::Type::Record make_field_descriptor_type(const std::string &equation_name) const
unsigned int n_regions() const
Return number of stored regions.
virtual bool is_constant(Region reg)=0
FieldCommon * field(const std::string &field_name) const
FieldCommon & name(const string &name)