16 #ifndef __H2D_EXACT_SOLUTION_H
17 #define __H2D_EXACT_SOLUTION_H
31 template<
typename Scalar>
38 virtual unsigned int get_dimension()
const = 0;
47 template<
typename T>
friend class Solution;
53 template<
typename Scalar>
60 virtual unsigned int get_dimension()
const;
63 virtual Scalar value (
double x,
double y)
const = 0;
66 virtual void derivatives (
double x,
double y, Scalar& dx, Scalar& dy)
const = 0;
70 derivatives (x, y, dx, dy);
76 virtual Hermes::Ord ord(Hermes::Ord x, Hermes::Ord y)
const = 0;
80 template<
typename Scalar>
81 class HERMES_API ExactSolutionVector :
public ExactSolution<Scalar>
84 ExactSolutionVector(
const Mesh* mesh);
87 virtual unsigned int get_dimension()
const;
90 virtual Scalar2<Scalar> value (
double x,
double y)
const = 0;
93 virtual void derivatives (
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const = 0;
96 virtual Scalar2<Scalar>
exact_function(
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const {
97 derivatives (x, y, dx, dy);
103 virtual Hermes::Ord ord(Hermes::Ord x, Hermes::Ord y)
const = 0;
107 template<
typename Scalar>
113 virtual Scalar value (
double x,
double y)
const;
115 virtual void derivatives (
double x,
double y, Scalar& dx, Scalar& dy)
const;
117 virtual Ord ord(Ord x, Ord y)
const;
121 void save(
const char* filename)
const;
128 template<
typename Scalar>
134 virtual Scalar value (
double x,
double y)
const;
136 virtual void derivatives (
double x,
double y, Scalar& dx, Scalar& dy)
const;
138 virtual Ord ord(Ord x, Ord y)
const;
142 void save(
const char* filename)
const;
146 template<
typename Scalar>
152 virtual Scalar2<Scalar> value (
double x,
double y)
const;
154 virtual void derivatives (
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const;
156 virtual Ord ord(Ord x, Ord y)
const;
160 void save(
const char* filename)
const;
167 template<
typename Scalar>
173 virtual Scalar2<Scalar> value (
double x,
double y)
const;
175 virtual void derivatives (
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const;
177 virtual Ord ord(Ord x, Ord y)
const;
181 void save(
const char* filename)
const;