|
| TensorElliptic () |
| empty object ( no memory allocation) More...
|
|
| TensorElliptic (const Geometry &g, direction dir=dg::centered, value_type jfactor=1.) |
| Construct TensorElliptic operator. More...
|
|
| TensorElliptic (const Geometry &g, bc bcx, bc bcy, direction dir=dg::centered, value_type jfactor=1.) |
| Construct TensorElliptic operator. More...
|
|
template<class ... Params> |
void | construct (Params &&...ps) |
| Perfect forward parameters to one of the constructors. More...
|
|
const Container & | weights () const |
|
const Container & | precond () const |
| Preconditioner to use in conjugate gradient solvers. More...
|
|
template<class ContainerType0 > |
void | set_chi (const ContainerType0 &chi) |
| Set Chi in the above formula. More...
|
|
template<class ContainerType0 > |
void | set_iota (const ContainerType0 &iota) |
| Set Iota in the above formula. More...
|
|
void | variation (const Container &phi, const value_type &alpha, const Container &chi, Container &varphi) |
| compute the variational of the operator (psi_2 in gf theory): More...
|
|
template<class ContainerType0 , class ContainerType1 > |
void | operator() (const ContainerType0 &x, ContainerType1 &y) |
|
template<class ContainerType0 , class ContainerType1 > |
void | symv (const ContainerType0 &x, ContainerType1 &y) |
|
template<class ContainerType0 , class ContainerType1 > |
void | symv (value_type alpha, const ContainerType0 &x, value_type beta, ContainerType1 &y) |
| apply operator More...
|
|
template<class Geometry, class Matrix, class Container>
struct dg::mat::TensorElliptic< Geometry, Matrix, Container >
Matrix class that represents the arbitrary polarization operator.
Discretization of
\[ (-\nabla \cdot \chi \nabla - \Delta \iota \Delta + \nabla \cdot\nabla \cdot 2\iota \nabla \nabla ) x \]
in two dimensions where \( \chi\) and \(\iota\) are functions
template<class Geometry , class Matrix , class Container >
template<class ContainerType0 , class ContainerType1 >
apply operator
Computes
\[ y = W\left[-\nabla \cdot \chi \nabla_\perp - \Delta_\perp \iota \Delta_\perp + 2\nabla \cdot\nabla \cdot \iota \nabla_\perp \nabla_\perp \right] x \]
to make the matrix symmetric
- Parameters
-
alpha | |
x | lhs (is constant up to changes in ghost cells) |
beta | |
y | rhs contains solution |
- Note
- Note that for Cartesian and Cylindrical coordinate systems (with the straight field line approximation) the following relation holds
\[\nabla \cdot\nabla \cdot (\chi \nabla_\perp^2 f) = \frac{1}{\sqrt{g}} \partial_j \left\{\partial_i \left[\sqrt{g} \chi P^{ni} \left( \partial_n ( P^{jm} \partial_m f)\right) \right]\right\} \]
where P is the projection tensor