~gabriel1984sibiu/agros2d/agros2d

« back to all changes in this revision

Viewing changes to hermes/hermes2d/test_examples/11-transient-adapt/definitions.h

  • Committer: Grevutiu Gabriel
  • Date: 2014-11-15 19:05:36 UTC
  • Revision ID: gabriel1984sibiu@gmail.com-20141115190536-1d4q8ez0f8b89ktj
originalĀ upstreamĀ code

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "hermes2d.h"
 
2
 
 
3
using namespace Hermes;
 
4
using namespace Hermes::Hermes2D;
 
5
using namespace Hermes::Hermes2D::WeakFormsH1;
 
6
 
 
7
/* Nonlinearity lambda(u) = pow(u, alpha) */
 
8
 
 
9
class CustomNonlinearity : public Hermes1DFunction<double>
 
10
{
 
11
public:
 
12
  CustomNonlinearity(double alpha);
 
13
 
 
14
  virtual double value(double u) const;
 
15
 
 
16
  virtual Ord value(Ord u) const;
 
17
 
 
18
  virtual double derivative(double u) const;
 
19
 
 
20
  virtual Ord derivative(Ord u) const;
 
21
 
 
22
  protected:
 
23
    double alpha;
 
24
};
 
25
 
 
26
/* Essential boundary condition */
 
27
 
 
28
class EssentialBCNonConst : public EssentialBoundaryCondition<double>
 
29
{
 
30
public:
 
31
  EssentialBCNonConst(std::string marker);
 
32
 
 
33
  virtual EssentialBCValueType get_value_type() const;
 
34
 
 
35
  virtual double value(double x, double y, double n_x, double n_y, double t_x, double t_y) const;
 
36
};
 
37
 
 
38
/* Initial condition */
 
39
 
 
40
class CustomInitialCondition : public ExactSolutionScalar<double>
 
41
{
 
42
public:
 
43
  CustomInitialCondition(MeshSharedPtr mesh) : ExactSolutionScalar<double>(mesh) {};
 
44
  ~CustomInitialCondition();
 
45
 
 
46
  virtual void derivatives (double x, double y, double& dx, double& dy) const;
 
47
 
 
48
  virtual double value (double x, double y) const;
 
49
 
 
50
  virtual Ord ord(double x, double y) const;
 
51
 
 
52
  MeshFunction<double>* clone() const;
 
53
};
 
54
 
 
55
class CustomWeakFormPoisson : public WeakForm<double>
 
56
{
 
57
public:
 
58
  CustomWeakFormPoisson(Hermes1DFunction<double>* coeff, Hermes2DFunction<double>* f);
 
59
};
 
 
b'\\ No newline at end of file'