Package hedge :: Package models :: Module poisson :: Class WeakPoissonOperator :: Class BoundPoissonOperator
[hide private]
[frames] | no frames]

Class BoundPoissonOperator

source code


Instance Methods [hide private]
 
__init__(self, poisson_op, discr)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
 
grad(self, u) source code
 
div(self, v, u=None, apply_minv=True)
Compute the divergence of v using an LDG operator.
source code
 
op(self, u, apply_minv=False) source code
 
__call__(self, u, apply_minv=False) source code
 
prepare_rhs(self, rhs)
Prepare the right-hand side for the linear system op(u)=rhs(f).
source code

Inherited from iterative.OperatorBase: __neg__

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]
  dtype
  shape

Inherited from object: __class__

Method Details [hide private]

__init__(self, poisson_op, discr)
(Constructor)

source code 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)

div(self, v, u=None, apply_minv=True)

source code 

Compute the divergence of v using an LDG operator.

The divergence computation is unaffected by the scaling effected by the diffusion tensor.

Parameters:
  • apply_minv - Bool specifying whether to compute a complete divergence operator. If False, the final application of the inverse mass operator is skipped. This is used in op() in order to reduce the scheme M^{-1} S u = f to S u = M f, so that the mass operator only needs to be applied once, when preparing the right hand side in @prepare_rhs.

prepare_rhs(self, rhs)

source code 

Prepare the right-hand side for the linear system op(u)=rhs(f).

In matrix form, LDG looks like this:

Mv = Cu + g Mf = Av + Bu + h

where v is the auxiliary vector, u is the argument of the operator, f is the result of the grad operator, g and h are inhom boundary data, and A,B,C are some operator+lifting matrices.

M f = A Minv(Cu + g) + Bu + h

so the linear system looks like

M f = A Minv Cu + A Minv g + Bu + h M f - A Minv g - h = (A Minv C + B)u (*) --------rhs-------

So the right hand side we're putting together here is really

M f - A Minv g - h

Finally, note that the operator application above implements the equation (*) left-multiplied by Minv, so that the right-hand-side becomes

f - Minv( A Minv g + h)


Property Details [hide private]

dtype

Get Method:
unreachable.dtype(self)

shape

Get Method:
unreachable.shape(self)