#include <Metric.h>
|
| Metric () |
|
| Metric (const EigenMetric &) |
|
| Metric (double a) |
|
| Metric (double a, double b, double c) |
|
| Metric (double a, const Metric ma, double b, const Metric mb) |
|
| Metric (const double a[3], const Metric m0, const Metric m1, const Metric m2) |
|
void | Echo () |
|
double | det () const |
|
int | IntersectWith (const Metric &M2) |
|
void | Box (double &hx, double &hy) const |
|
R2 | Orthogonal (const R2 x) |
|
R2 | Orthogonal (const I2 x) |
|
double | Length (double Ax, double Ay) const |
|
Metric | operator* (double c) const |
|
Metric | operator/ (double c) const |
|
| operator D2xD2 () |
|
double | operator() (R2 x, R2 y) const |
|
Definition at line 17 of file Metric.h.
◆ Metric() [1/6]
◆ Metric() [2/6]
Definition at line 115 of file Metric.h.
116 double v00=M.vx*M.vx;
117 double v11=M.vy*M.vy;
118 double v01=M.vx*M.vy;
119 a11=v00*M.lambda1+v11*M.lambda2;
120 a21=v01*(M.lambda1-M.lambda2);
121 a22=v00*M.lambda2+v11*M.lambda1;
◆ Metric() [3/6]
bamg::Metric::Metric |
( |
double |
a | ) |
|
◆ Metric() [4/6]
bamg::Metric::Metric |
( |
double |
a, |
|
|
double |
b, |
|
|
double |
c |
|
) |
| |
◆ Metric() [5/6]
bamg::Metric::Metric |
( |
double |
a, |
|
|
const Metric |
ma, |
|
|
double |
b, |
|
|
const Metric |
mb |
|
) |
| |
Definition at line 59 of file Metric.cpp.
62 Metric mab(a*ma.a11+b*mb.a11,a*ma.a21+b*mb.a21,a*ma.a22+b*mb.a22);
66 double v1x = + vab.vx;
67 double v1y = + vab.vy;
68 double v2x = - vab.vy;
69 double v2y = + vab.vx;
72 double h1 = a/ma.Length(v1x,v1y) + b/mb.Length(v1x,v1y);
73 double h2 = a/ma.Length(v2x,v2y) + b/mb.Length(v2x,v2y);
74 vab.lambda1 = 1./(h1*h1);
75 vab.lambda2 = 1./(h2*h2);
78 double v00=vab.vx*vab.vx;
79 double v11=vab.vy*vab.vy;
80 double v01=vab.vx*vab.vy;
81 this->
a11=v00*vab.lambda1+v11*vab.lambda2;
82 this->
a21=v01*(vab.lambda1-vab.lambda2);
83 this->
a22=v00*vab.lambda2+v11*vab.lambda1;
◆ Metric() [6/6]
bamg::Metric::Metric |
( |
const double |
a[3], |
|
|
const Metric |
m0, |
|
|
const Metric |
m1, |
|
|
const Metric |
m2 |
|
) |
| |
Definition at line 30 of file Metric.cpp.
33 Metric mab(a[0]*m0.a11 + a[1]*m1.a11 + a[2]*m2.a11,
34 a[0]*m0.a21 + a[1]*m1.a21 + a[2]*m2.a21,
35 a[0]*m0.a22 + a[1]*m1.a22 + a[2]*m2.a22);
39 double v1x = + vab.vx;
40 double v1y = + vab.vy;
41 double v2x = - vab.vy;
42 double v2y = + vab.vx;
44 double h1=a[0] / m0.Length(v1x,v1y) + a[1] / m1.Length(v1x,v1y) + a[2] / m2.Length(v1x,v1y);
45 double h2=a[0] / m0.Length(v2x,v2y) + a[1] / m1.Length(v2x,v2y) + a[2] / m2.Length(v2x,v2y);
47 vab.lambda1 = 1. / (h1*h1);
48 vab.lambda2 = 1. / (h2*h2);
51 double v00=vab.vx*vab.vx;
52 double v11=vab.vy*vab.vy;
53 double v01=vab.vx*vab.vy;
54 this->
a11=v00*vab.lambda1+v11*vab.lambda2;
55 this->
a21=v01*(vab.lambda1-vab.lambda2);
56 this->
a22=v00*vab.lambda2+v11*vab.lambda1;
◆ Echo()
void bamg::Metric::Echo |
( |
void |
| ) |
|
◆ det()
double bamg::Metric::det |
( |
| ) |
const |
◆ IntersectWith()
int bamg::Metric::IntersectWith |
( |
const Metric & |
M2 | ) |
|
Definition at line 99 of file Metric.cpp.
130 double lambda1=M1(v1,v1);
131 double lambda2=M1(v2,v2);
132 double mu1=M2(v1,v1);
133 double mu2=M2(v2,v2);
136 if ( lambda1 < mu1 ) change=1,lambda1=mu1;
137 if ( lambda2 < mu2 ) change=1,lambda2=mu2;
142 D2xD2 D(lambda1,0,0,lambda2);
143 D2xD2 M(invP.t()*D*invP);
145 a21=0.5*(M.x.y+M.y.x);
◆ Box()
void bamg::Metric::Box |
( |
double & |
hx, |
|
|
double & |
hy |
|
) |
| const |
|
inline |
◆ Orthogonal() [1/2]
R2 bamg::Metric::Orthogonal |
( |
const R2 |
x | ) |
|
|
inline |
◆ Orthogonal() [2/2]
R2 bamg::Metric::Orthogonal |
( |
const I2 |
x | ) |
|
|
inline |
◆ Length()
double bamg::Metric::Length |
( |
double |
Ax, |
|
|
double |
Ay |
|
) |
| const |
◆ operator*()
Metric bamg::Metric::operator* |
( |
double |
c | ) |
const |
|
inline |
◆ operator/()
Metric bamg::Metric::operator/ |
( |
double |
c | ) |
const |
|
inline |
◆ operator D2xD2()
bamg::Metric::operator D2xD2 |
( |
| ) |
|
|
inline |
◆ operator()()
double bamg::Metric::operator() |
( |
R2 |
x, |
|
|
R2 |
y |
|
) |
| const |
|
inline |
Definition at line 50 of file Metric.h.
50 {
return x.x*y.x*
a11+(x.x*x.y+x.y*y.x)*
a21+x.y*y.y*
a22;};
◆ EigenMetric
◆ a11
◆ a21
◆ a22
The documentation for this class was generated from the following files: