comparison diff_op.cpp @ 15:5144dd3c5468

Almost completed adding all Doxygen docstrings.
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Fri, 08 Aug 2008 00:08:57 -0500
parents e6d2cd3b6e77
children
comparison
equal deleted inserted replaced
14:e6d2cd3b6e77 15:5144dd3c5468
8 using namespace linalg; 8 using namespace linalg;
9 using namespace error_handling; 9 using namespace error_handling;
10 10
11 11
12 //************** Differential operator functions ********************* 12 //************** Differential operator functions *********************
13 diff_op::diff_op(){ 13 double diff_op::operator()(const realfunc &f, const point &p) const
14 } 14 {
15
16 double diff_op::operator()(const realfunc &f, const point &p) const{
17 return at(f,p); 15 return at(f,p);
18 } 16 }
19 17
20 double linear_diff_op2::operator()(const realfunc &f, const point &p) const{ 18 double linear_diff_op2::operator()(const realfunc &f, const point
19 &p) const
20 {
21 return diff_op::operator()(f,p); 21 return diff_op::operator()(f,p);
22 } 22 }
23 23
24 24
25 double bdry_diff_op::operator()(const realfunc &f, 25 double bdry_diff_op::operator()(const realfunc &f,
26 const point &p) const{ 26 const point &p) const
27 {
27 return at(f,p); 28 return at(f,p);
28 } 29 }
29 double bdry_diff_op::operator()(const realfunc &f, 30 double bdry_diff_op::operator()(const realfunc &f,
30 const point &p, const vector &n) const{ 31 const point &p, const vector &n)
32 const
33 {
31 return at(f,p,n); 34 return at(f,p,n);
32 } 35 }
33 36
34 double dirichlet_op::at(const realfunc &f, 37 double dirichlet_op::at(const realfunc &f,
35 const point &p) const{ 38 const point &p) const
39 {
36 return f(p); 40 return f(p);
37 } 41 }
38 double dirichlet_op::at(const realfunc &f, const point &p, 42 double dirichlet_op::at(const realfunc &f, const point &p,
39 const vector &n) const{ 43 const vector &n) const
44 {
40 n.size(); 45 n.size();
41 return f(p); 46 return f(p);
42 } 47 }
43 48
44 double neumann_op::at(const realfunc &f, const point &p, 49 double neumann_op::at(const realfunc &f, const point &p,
45 const vector &n) const{ 50 const vector &n) const
51 {
46 size_t dim = n.size(); 52 size_t dim = n.size();
47 vector grad(dim); 53 vector grad(dim);
48 for(size_t i = 1; i <= dim; i++) 54 for(size_t i = 1; i <= dim; i++)
49 grad(i) =f.d(p,i); 55 grad(i) =f.d(p,i);
50 return grad%n/norm(n); 56 return grad%n/norm(n);
51 } 57 }
52 58
53 double Id_op::at(const realfunc &f, const point &p) const{ 59 double Id_op::at(const realfunc &f, const point &p) const
60 {
54 return f(p); 61 return f(p);
55 } 62 }
56 63
57 double del1::at(const realfunc &f, const point &p) const{ 64 double del1::at(const realfunc &f, const point &p) const
65 {
58 return f.d(p,1); 66 return f.d(p,1);
59 } 67 }
60 68
61 double del1::at(const realfunc &f, const point &p, size_t i) const{ 69 double del1::at(const realfunc &f, const point &p, size_t i) const
70 {
62 return f.d(p,i); 71 return f.d(p,i);
63 } 72 }
64 73
65 double del2::at(const realfunc &f, const point &p) const{ 74 double del2::at(const realfunc &f, const point &p) const
75 {
66 return f.d2(p,1,1); 76 return f.d2(p,1,1);
67 } 77 }
68 78
69 double del2::at(const realfunc &f, const point &p, 79 double del2::at(const realfunc &f, const point &p,
70 size_t i, size_t j) const{ 80 size_t i, size_t j) const
81 {
71 return f.d2(p,i,j); 82 return f.d2(p,i,j);
72 } 83 }
73 84
74 double Laplacian::at(const realfunc &f, const point &p) const{ 85 double Laplacian::at(const realfunc &f, const point &p) const
86 {
75 size_t n = p.size(); 87 size_t n = p.size();
76 double result = 0; 88 double result = 0;
77 del2 D2; 89 del2 D2;
78 for (size_t i = 1; i <=n; i++){ 90 for (size_t i = 1; i <=n; i++){
79 result += D2.at(f, p, i, i); 91 result += D2.at(f, p, i, i);