|
| PolChargeN () |
| empty object ( no memory allocation) More...
|
|
| PolChargeN (const Geometry &g, direction dir=forward, value_type jfactor=1.) |
| Construct from Grid. More...
|
|
| PolChargeN (const Geometry &g, bc bcx, bc bcy, direction dir=forward, value_type jfactor=1.) |
| Construct from grid and boundary conditions. More...
|
|
template<class ... Params> |
void | construct (Params &&...ps) |
| Perfect forward parameters to one of the constructors. More...
|
|
template<class ContainerType0 > |
void | set_phi (const ContainerType0 &phi) |
|
template<class ContainerType0 > |
void | set_dxphi (const ContainerType0 &dxphi) |
|
template<class ContainerType0 > |
void | set_dyphi (const ContainerType0 &dyphi) |
|
template<class ContainerType0 > |
void | set_lapphi (const ContainerType0 &lapphi) |
|
const Container & | weights () const |
| Return the vector making the matrix symmetric. More...
|
|
const Container & | precond () const |
| Return the default preconditioner to use in conjugate gradient. More...
|
|
template<class ContainerType0 , class ContainerType1 > |
void | operator() (const ContainerType0 &x, ContainerType1 &y) |
| Compute elliptic term and store in output. More...
|
|
template<class ContainerType0 , class ContainerType1 > |
void | symv (const ContainerType0 &x, ContainerType1 &y) |
| Compute elliptic term and store in output. More...
|
|
template<class ContainerType0 , class ContainerType1 > |
void | symv (value_type alpha, const ContainerType0 &x, value_type beta, ContainerType1 &y) |
| Compute elliptic term and add to output. More...
|
|
template<class Geometry, class Matrix, class Container>
class dg::mat::PolChargeN< Geometry, Matrix, Container >
EXPERIMENTAL polarization solver class for N.
Try to solve N
\( -\nabla \cdot ( N \nabla \phi) = \rho\) for given phi
and rho
- Attention
- Converges very slowly if at all
template<class Geometry , class Matrix , class Container >
template<class ContainerType0 , class ContainerType1 >
void dg::mat::PolChargeN< Geometry, Matrix, Container >::operator() |
( |
const ContainerType0 & |
x, |
|
|
ContainerType1 & |
y |
|
) |
| |
|
inline |
Compute elliptic term and store in output.
i.e. \( y=f(x) = - \nabla \cdot (x \nabla_\perp \phi) \) or \( y=f(x) = x + (1+ \alpha \Delta_\perp )\nabla \cdot (x \nabla_\perp \phi) \)
- Parameters
-
- Template Parameters
-
template<class Geometry , class Matrix , class Container >
Return the default preconditioner to use in conjugate gradient.
Currently returns the inverse weights without volume elment divided by the scalar part of \( \chi\). This is especially good when \( \chi\) exhibits large amplitudes or variations
- Returns
- the inverse of \(\chi\).
template<class Geometry , class Matrix , class Container >
template<class ContainerType0 , class ContainerType1 >
Compute elliptic term and add to output.
i.e. \( y=alpha*M(phi) x +beta*y \)
- Parameters
-
alpha | a scalar |
x | the chi term |
beta | a scalar |
y | result |
- Template Parameters
-