20 #ifndef __HERMES_COMMON_BOUNDARYCONDITIONS_H
21 #define __HERMES_COMMON_BOUNDARYCONDITIONS_H
23 #include "../global.h"
35 template<
typename Scalar>
53 virtual EssentialBCValueType get_value_type()
const = 0;
63 virtual Scalar value(
double x,
double y,
double n_x,
double n_y,
double t_x,
double t_y)
const = 0;
66 void set_current_time(
double time);
69 double get_current_time()
const;
82 template<
typename T>
friend class Space;
83 template<
typename T>
friend class H1Space;
84 template<
typename T>
friend class L2Space;
86 template<
typename T>
friend class HdivSpace;
90 template<
typename Scalar>
97 Scalar value(
double x,
double y,
double n_x,
double n_y,
double t_x,
double t_y)
const;
130 template<
typename Scalar>
141 virtual Scalar value(
double x,
double y,
double n_x,
double n_y,
double t_x,
double t_y)
const;
151 template<
typename Scalar>
162 virtual Scalar value(
double x,
double y,
double n_x,
double n_y,
double t_x,
double t_y)
const;
173 template<
typename Scalar>
174 class HERMES_API EssentialBCs {
180 EssentialBCs(Hermes::vector<EssentialBoundaryCondition<Scalar> *> essential_bcs);
181 EssentialBCs(EssentialBoundaryCondition<Scalar>* boundary_condition);
187 void add_boundary_conditions(Hermes::vector<EssentialBoundaryCondition<Scalar> *> essential_bcs);
188 void add_boundary_condition(EssentialBoundaryCondition<Scalar>* essential_bc);
191 typename Hermes::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator
iterator;
192 typename Hermes::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator begin()
const;
193 typename Hermes::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator end()
const;
198 void set_current_time(
double time);
202 Hermes::vector<EssentialBoundaryCondition<Scalar> *> all;
205 Hermes::vector<std::string> markers;
207 Hermes::vector<EssentialBoundaryCondition<Scalar> *> BCs;
213 void create_marker_cache();
216 template<
typename T>
friend class Space;
217 template<
typename T>
friend class H1Space;
218 template<
typename T>
friend class L2Space;
220 template<
typename T>
friend class HdivSpace;