dune-pdelab  2.5-dev
Public Member Functions | Static Public Attributes | List of all members
Dune::PDELab::Electrodynamic_S< Mu > Class Template Reference

Contruct matrix S for the Electrodynamic operator. More...

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

Inheritance diagram for Dune::PDELab::Electrodynamic_S< Mu >:
Inheritance graph

Public Types

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

 Electrodynamic_S (const Mu &mu, int qorder=2)
 Construct an Electrodynamic_S localoperator. More...
 
 Electrodynamic_S (Mu &&mu, int qorder=2)
 
template<typename EG , typename LFS , typename X , typename M >
void jacobian_volume (const EG &eg, const LFS &lfsu, const X &x, const LFS &lfsv, M &mat) const
 
template<typename LFSU , typename LFSV , typename LocalPattern >
void pattern_volume (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
 
void alpha_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const
 compute $\alpha_\text{vol}$ More...
 

Static Public Attributes

static constexpr bool doPatternVolume = true
 
static constexpr bool doAlphaVolume = true
 

Detailed Description

template<typename Mu>
class Dune::PDELab::Electrodynamic_S< Mu >

Contruct matrix S for the Electrodynamic operator.

Construct the matrix

\[ S_{ij}=\int_\Omega\mu^{-1}(\nabla\times\mathbf N_i)\cdot (\nabla\times\mathbf N_j)dV \]

which appears inside the Electrodynamic operator.

Template Parameters
MuType of function to evaluate $\mu$

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited

Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called.

Enumerator
doPatternVolume 

◆ anonymous enum

anonymous enum
inherited

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.

Enumerator
doPatternVolumePostSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called.

Enumerator
doPatternSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called.

Enumerator
doPatternBoundary 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume().

Enumerator
doAlphaVolume 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton().

Enumerator
doAlphaVolumePostSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton().

Enumerator
doAlphaSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary().

Enumerator
doAlphaBoundary 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's lambda_volume().

Enumerator
doLambdaVolume 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's lambda_volume_post_skeleton().

Enumerator
doLambdaVolumePostSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's lambda_skeleton().

Enumerator
doLambdaSkeleton 

◆ anonymous enum

anonymous enum
inherited

Whether to call the local operator's lambda_boundary().

Enumerator
doLambdaBoundary 

◆ anonymous enum

anonymous enum
inherited

Whether to visit the skeleton methods from both sides.

Enumerator
doSkeletonTwoSided 

Constructor & Destructor Documentation

◆ Electrodynamic_S() [1/2]

template<typename Mu >
Dune::PDELab::Electrodynamic_S< Mu >::Electrodynamic_S ( const Mu &  mu,
int  qorder = 2 
)
inline

Construct an Electrodynamic_S localoperator.

Parameters
mu(Reference to) Function object to evaluate
qorderQuadrature order to use.
Note
When using the deprecated old style parameter interface, mu needed to be a reference to a parameter object, and the local operator would store a reference to that object. With the new style interface, mu is a callable (function object, lambda, or even a plain function pointer), and the local operator stores a copy. To get the old behaviour in a non-deprecated way, wrap the callable in a std::reference_wrapper.

◆ Electrodynamic_S() [2/2]

template<typename Mu >
Dune::PDELab::Electrodynamic_S< Mu >::Electrodynamic_S ( Mu &&  mu,
int  qorder = 2 
)
inline

Member Function Documentation

◆ alpha_volume()

void Dune::PDELab::JacobianBasedAlphaVolume< Electrodynamic_S< Mu > >::alpha_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
R &  r 
) const
inlineinherited

compute $\alpha_\text{vol}$

◆ jacobian_volume()

template<typename Mu >
template<typename EG , typename LFS , typename X , typename M >
void Dune::PDELab::Electrodynamic_S< Mu >::jacobian_volume ( const EG &  eg,
const LFS &  lfsu,
const X &  x,
const LFS &  lfsv,
M &  mat 
) const
inline
Note
We support only Galerkin method lfsu==lfsv

◆ pattern_volume()

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

◆ doAlphaVolume

template<typename Mu >
constexpr bool Dune::PDELab::Electrodynamic_S< Mu >::doAlphaVolume = true
static

◆ doPatternVolume

template<typename Mu >
constexpr bool Dune::PDELab::Electrodynamic_S< Mu >::doPatternVolume = true
static

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