dune-pdelab  2.4-dev
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::PDELab::Poisson< F, B, J > Class Template Reference

#include <dune/pdelab/localoperator/poisson.hh>

Inheritance diagram for Dune::PDELab::Poisson< F, B, J >:
Inheritance graph

Public Types

enum  { doPatternVolume = true }
 
enum  { doAlphaVolume = true }
 
enum  { doLambdaVolume = true }
 
enum  { doLambdaBoundary = true }
 
Flags for the sparsity pattern
enum  { doPatternVolume }
 Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called. More...
 
enum  { doPatternVolumePostSkeleton }
 Whether to assemble the pattern on the elements after the skeleton has been handled, i.e. whether or not pattern_volume_post_skeleton() should be called. More...
 
enum  { doPatternSkeleton }
 Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called. More...
 
enum  { doPatternBoundary }
 Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called. More...
 
Flags for the non-constant part of the residual and the jacobian
enum  { doAlphaVolume }
 Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume(). More...
 
enum  { doAlphaVolumePostSkeleton }
 Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton(). More...
 
enum  { doAlphaSkeleton }
 Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton(). More...
 
enum  { doAlphaBoundary }
 Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary(). More...
 
Flags for the constant part of the residual
enum  { doLambdaVolume }
 Whether to call the local operator's lambda_volume(). More...
 
enum  { doLambdaVolumePostSkeleton }
 Whether to call the local operator's lambda_volume_post_skeleton(). More...
 
enum  { doLambdaSkeleton }
 Whether to call the local operator's lambda_skeleton(). More...
 
enum  { doLambdaBoundary }
 Whether to call the local operator's lambda_boundary(). More...
 
Special flags
enum  { doSkeletonTwoSided }
 Whether to visit the skeleton methods from both sides. More...
 

Public Member Functions

 Poisson (const F &f_, const B &bctype_, const J &j_, unsigned int quadOrder)
 Constructor. More...
 
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void alpha_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const
 
template<typename EG , typename LFSU , typename X , typename LFSV , typename M >
void jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &matrix) const
 Compute the Laplace stiffness matrix for the element given in 'eg'. More...
 
template<typename EG , typename LFSV , typename R >
void lambda_volume (const EG &eg, const LFSV &lfsv, R &r) const
 
template<typename IG , typename LFSV , typename R >
void lambda_boundary (const IG &ig, const LFSV &lfsv, R &r) const
 
void jacobian_apply_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
 apply local jacobian of the volume term More...
 
template<typename LFSU , typename LFSV , typename LocalPattern >
void pattern_volume (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
 

Protected Attributes

const F & f
 
const B & bctype
 
const J & j
 
Laplace laplace_
 
unsigned int quadOrder_
 

Detailed Description

template<typename F, typename B, typename J>
class Dune::PDELab::Poisson< F, B, J >

a local operator for solving the Poisson equation

\begin{align*} - \Delta u &=& f \mbox{ in } \Omega, \\ u &=& g \mbox{ on } \partial\Omega_D \\ -\nabla u \cdot \nu &=& j \mbox{ on } \partial\Omega_N \\ \end{align*}

with conforming finite elements on all types of grids in any dimension

Template Parameters
Fgrid function type giving f
Bgrid function type selecting boundary condition
Jgrid function type giving j

Constructor & Destructor Documentation

template<typename F , typename B , typename J >
Dune::PDELab::Poisson< F, B, J >::Poisson ( const F &  f_,
const B &  bctype_,
const J &  j_,
unsigned int  quadOrder 
)
inline

Constructor.

Parameters
quadOrderOrder of the quadrature rule used for integrating over the element
Deprecated:
"Deprecated in DUNE-PDELab 2.4, use the local operator ConvectionDiffusionFEM instead!"

Member Function Documentation

template<typename F , typename B , typename J >
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::Poisson< F, B, J >::alpha_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
R &  r 
) const
inline
void Dune::PDELab::NumericalJacobianApplyVolume< Poisson< F, B, J > >::jacobian_apply_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
Y &  y 
) const
inlineinherited

apply local jacobian of the volume term

template<typename F , typename B , typename J >
template<typename EG , typename LFSU , typename X , typename LFSV , typename M >
void Dune::PDELab::Poisson< F, B, J >::jacobian_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
M &  matrix 
) const
inline

Compute the Laplace stiffness matrix for the element given in 'eg'.

Template Parameters
MType of the element stiffness matrix
Parameters
[in]egThe grid element we are assembling on
[in]lfsuLocal ansatz function space basis
[in]lfsvLocal test function space basis
[in]xCurrent configuration; gets ignored for linear problems like this one
[out]matrixElement stiffness matrix
template<typename F , typename B , typename J >
template<typename IG , typename LFSV , typename R >
void Dune::PDELab::Poisson< F, B, J >::lambda_boundary ( const IG &  ig,
const LFSV &  lfsv,
R &  r 
) const
inline
template<typename F , typename B , typename J >
template<typename EG , typename LFSV , typename R >
void Dune::PDELab::Poisson< F, B, J >::lambda_volume ( const EG &  eg,
const LFSV &  lfsv,
R &  r 
) const
inline
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::FullVolumePattern::pattern_volume ( const LFSU &  lfsu,
const LFSV &  lfsv,
LocalPattern &  pattern 
) const
inlineinherited

Member Data Documentation

template<typename F , typename B , typename J >
const B& Dune::PDELab::Poisson< F, B, J >::bctype
protected
template<typename F , typename B , typename J >
const F& Dune::PDELab::Poisson< F, B, J >::f
protected
template<typename F , typename B , typename J >
const J& Dune::PDELab::Poisson< F, B, J >::j
protected
template<typename F , typename B , typename J >
Laplace Dune::PDELab::Poisson< F, B, J >::laplace_
protected
template<typename F , typename B , typename J >
unsigned int Dune::PDELab::Poisson< F, B, J >::quadOrder_
protected

The documentation for this class was generated from the following file: