20 #ifndef __HERMES_COMMON_BOUNDARYCONDITIONS_H
21 #define __HERMES_COMMON_BOUNDARYCONDITIONS_H
23 #include "../global.h"
41 template<
typename Scalar>
64 virtual Scalar value(
double x,
double y)
const = 0;
67 void set_current_time(
double time);
70 double get_current_time()
const;
83 template<
typename T>
friend class Space;
84 template<
typename T>
friend class H1Space;
85 template<
typename T>
friend class L2Space;
87 template<
typename T>
friend class HdivSpace;
91 template<
typename Scalar>
99 Scalar value(
double x,
double y)
const;
134 template<
typename Scalar>
145 virtual Scalar value(
double x,
double y)
const;
156 template<
typename Scalar>
157 class HERMES_API EssentialBCs {
163 EssentialBCs(std::vector<EssentialBoundaryCondition<Scalar> *> essential_bcs);
164 EssentialBCs(EssentialBoundaryCondition<Scalar>* boundary_condition);
170 void add_boundary_conditions(std::vector<EssentialBoundaryCondition<Scalar> *> essential_bcs);
171 void add_boundary_condition(EssentialBoundaryCondition<Scalar>* essential_bc);
174 typename std::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator
iterator;
175 typename std::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator begin()
const;
176 typename std::vector<EssentialBoundaryCondition<Scalar> *>::const_iterator end()
const;
182 const std::vector<std::string>& get_markers()
const;
185 void set_current_time(
double time);
189 std::vector<EssentialBoundaryCondition<Scalar> *> all;
192 std::vector<std::string> markers;
194 std::vector<EssentialBoundaryCondition<Scalar> *> BCs;
200 void create_marker_cache();
203 template<
typename T>
friend class Space;
204 template<
typename T>
friend class H1Space;
205 template<
typename T>
friend class L2Space;
207 template<
typename T>
friend class HdivSpace;
EssentialBCValueType
Types of description of boundary values, either a function (callback), or a constant.
Scalar value_const
Special case of a constant function.
::xsd::cxx::tree::time< char, simple_type > time
C++ type corresponding to the time XML Schema built-in type.
std::vector< std::string > markers
Markers.
double current_time
Current time.
EssentialBCValueType get_value_type() const
Function giving info that u_Essential is a constant.
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
EssentialBCValueType get_value_type() const
Function giving info that u_Essential is a non-constant function.
Represents a finite element space over a domain.
std::vector< EssentialBoundaryCondition< Scalar > * >::const_iterator iterator
Public iterators for the private data structures.
Class representing constant essential boundary condition.