16 #ifndef __H2D_EXACT_SOLUTION_H
17 #define __H2D_EXACT_SOLUTION_H
25 template<
typename T>
class Geom;
32 template<
typename Scalar>
40 virtual unsigned int get_dimension()
const = 0;
47 virtual void save(
const char* filename)
const;
49 virtual void save_bson(
const char* filename)
const;
51 virtual Hermes::Ord ord(
double x,
double y)
const = 0;
58 template<
typename T>
friend class Solution;
63 template<
typename Scalar>
71 virtual unsigned int get_dimension()
const;
74 virtual Scalar value(
double x,
double y)
const = 0;
77 virtual void derivatives(
double x,
double y, Scalar& dx, Scalar& dy)
const = 0;
81 derivatives(x, y, dx, dy);
88 template<
typename Scalar,
typename ValueType>
100 virtual Scalar value(
double x,
double y)
const;
101 virtual Ord ord(
double x,
double y)
const;
104 virtual void derivatives(
double x,
double y, Scalar& dx, Scalar& dy)
const;
106 inline std::string getClassName()
const {
return "ExactSolutionConstantArray"; }
108 void setArray(ValueType* valueArray);
117 template<
typename T>
friend class Solution;
120 template<
typename Scalar>
128 virtual unsigned int get_dimension()
const;
131 virtual Scalar2<Scalar> value(
double x,
double y)
const = 0;
134 virtual void derivatives(
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const = 0;
137 virtual Scalar2<Scalar>
exact_function(
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const {
138 derivatives(x, y, dx, dy);
143 template<
typename Scalar>
150 virtual Scalar value(
double x,
double y)
const;
152 virtual void derivatives(
double x,
double y, Scalar& dx, Scalar& dy)
const;
154 virtual Ord ord(
double x,
double y)
const;
158 void save(
const char* filename)
const;
160 void save_bson(
const char* filename)
const;
167 template<
typename Scalar>
174 virtual Scalar value(
double x,
double y)
const;
176 virtual void derivatives(
double x,
double y, Scalar& dx, Scalar& dy)
const;
178 virtual Ord ord(
double x,
double y)
const;
182 template<
typename Scalar>
189 virtual Scalar2<Scalar> value(
double x,
double y)
const;
191 virtual void derivatives(
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const;
193 virtual Ord ord(
double x,
double y)
const;
197 void save(
const char* filename)
const;
199 void save_bson(
const char* filename)
const;
206 template<
typename Scalar>
213 virtual Scalar2<Scalar> value(
double x,
double y)
const;
215 virtual void derivatives(
double x,
double y, Scalar2<Scalar>& dx, Scalar2<Scalar>& dy)
const;
217 virtual Ord ord(
double x,
double y)
const;
231 virtual double value(
double x,
double y)
const;
234 virtual void derivatives(
double x,
double y,
double& dx,
double& dy)
const;
238 virtual Hermes::Ord ord(
double x,
double y)
const;
244 template<
typename Scalar>
257 virtual Func<Scalar>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
259 virtual void precalculate(
unsigned short order,
unsigned short mask);
262 template<
typename Scalar>
Function operating on previous nonlinear solutions in assembling (u_ext)
Stores one element of a mesh.
Geometry (coordinates, normals, tangents) of either an element or an edge.
Represents a function defined on a mesh.
ValueType * valueArray
Array of the values.
virtual Scalar2< Scalar > exact_function(double x, double y, Scalar2< Scalar > &dx, Scalar2< Scalar > &dy) const
Function returning the value and derivatives.
Scalar exact_function(double x, double y, Scalar &dx, Scalar &dy) const
Function returning the value and derivatives.
Represents an arbitrary function defined on an element.
Scalar exact_multiplicator
For scaling of the solution.
Represents an exact solution of a PDE.
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Represents the solution of a PDE.
bool deleteArray
Delete the array.