Mercurial > hg > kwantix
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); |