3
using namespace Hermes;
4
using namespace Hermes::Hermes2D;
5
using namespace Hermes::Hermes2D::WeakFormsH1;
7
/* Nonlinearity lambda(u) = pow(u, alpha) */
9
class CustomNonlinearity : public Hermes1DFunction<double>
12
CustomNonlinearity(double alpha);
14
virtual double value(double u) const;
16
virtual Ord value(Ord u) const;
18
virtual double derivative(double u) const;
20
virtual Ord derivative(Ord u) const;
26
/* Essential boundary condition */
28
class EssentialBCNonConst : public EssentialBoundaryCondition<double>
31
EssentialBCNonConst(std::string marker);
33
virtual EssentialBCValueType get_value_type() const;
35
virtual double value(double x, double y, double n_x, double n_y, double t_x, double t_y) const;
38
/* Initial condition */
40
class CustomInitialCondition : public ExactSolutionScalar<double>
43
CustomInitialCondition(MeshSharedPtr mesh) : ExactSolutionScalar<double>(mesh) {};
44
~CustomInitialCondition();
46
virtual void derivatives (double x, double y, double& dx, double& dy) const;
48
virtual double value (double x, double y) const;
50
virtual Ord ord(double x, double y) const;
52
MeshFunction<double>* clone() const;
55
class CustomWeakFormPoisson : public WeakForm<double>
58
CustomWeakFormPoisson(Hermes1DFunction<double>* coeff, Hermes2DFunction<double>* f);
b'\\ No newline at end of file'