25 #ifndef field_algo_base_HH_ 26 #define field_algo_base_HH_ 31 #include <boost/type_traits.hpp> 65 template <
int spacedim,
class Value>
71 static constexpr
bool is_enum_valued = boost::is_same<typename Value::element_type, FieldEnum>::value;
103 static std::shared_ptr< FieldAlgorithmBase<spacedim, Value> >
130 virtual void set_mesh(
const Mesh *mesh,
bool boundary_domain);
141 unsigned int n_comp()
const;
156 {
ASSERT(
false).error(
"Not implemented yet.");
return 0.0; }
TimeStep time_
Actual time level; initial value is -infinity.
virtual double next_change_time()
static const Input::Type::Instance & get_input_type_instance(Input::Type::Selection value_selection=Input::Type::Selection())
unsigned int component_idx_
Specify if the field is part of a MultiField and which component it is.
virtual bool set_time(const TimeStep &time)
FieldResult field_result_
Indicator of particular values (zero, one) constant over space.
virtual void value_list(const std::vector< Point > &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename Value::return_type > &value_list)=0
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library...
virtual Value::return_type const & value(const Point &p, const ElementAccessor< spacedim > &elm)=0
Value::return_type r_value_
Basic time management class.
static constexpr bool is_enum_valued
FieldResult field_result() const
arma::vec::fixed< spacedim > Point
static std::shared_ptr< FieldAlgorithmBase< spacedim, Value > > function_factory(const Input::AbstractRecord &rec, unsigned int n_comp=0)
Space< spacedim >::Point Point
FieldAlgorithmBase(unsigned int n_comp=0)
Value value_
Last value, prevents passing large values (vectors) by value.
static Input::Type::Abstract & get_input_type()
virtual void set_mesh(const Mesh *mesh, bool boundary_domain)
virtual ~FieldAlgorithmBase()
void set_component_idx(unsigned int idx)
static const unsigned int spacedim_
static std::string template_name()
Representation of one time step..
unsigned int n_comp() const
virtual void init_from_input(const Input::Record &rec)