00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef __LAPLACE_1DL2_H
00036 #define __LAPLACE_1DL2_H
00037
00038 #include <float.h>
00039 #include <stdlib.h>
00040 #include <math.h>
00041
00042 #include "OFELI_Config.h"
00043 #include "Equation.h"
00044 #include "Element.h"
00045 #include "Line2.h"
00046
00047 namespace OFELI {
00048
00060 class Laplace1DL2
00061 {
00062
00063 public :
00064
00066 Laplace1DL2(Element *el);
00067
00069 ~Laplace1DL2()
00070 {
00071 delete _ln;
00072 #ifdef _OFELI_DEBUG
00073 std::clog << "An instance of class Laplace1DL2 is destructed.\n";
00074 std::clog << "File : " << __FILE__ << ", Line : " << __LINE__ << endl;
00075 #endif
00076 }
00077
00080 void Matrix(double coef=1.);
00081
00084 void BodyRHS(const Vect<double> &f);
00085
00092 void BoundaryRHS(int n, double p);
00093
00095 double *A() { return _a.getArray(); }
00096
00098 double *b() { return _b.getArray(); }
00099
00100 private :
00101
00102 Line2 *_ln;
00103 Element *_el;
00104 LocalMatrix<double,2,2> _a;
00105 LocalVect<double,2> _b;
00106 };
00107
00108 }
00109
00110 #endif