DUNE PDELab (git)

Dune::PDELab::DGMaxwellSpatialOperator< T, FEM > Class Template Reference

Spatial local operator for discontinuous Galerkin method for Maxwells Equations. More...

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

Public Types

Flags selective assembly
enum  
 Whether to do selective assembly on the elements, i.e. whether or not skip_entity() should be called.
 
enum  
 Whether to do selective assembly on the intersections, i.e. whether or not skip_intersection() should be called.
 
Flags for the sparsity pattern
enum  
 Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called.
 
enum  
 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.
 
enum  
 Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called.
 
enum  
 Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called.
 
Flags for the non-constant part of the residual and the jacobian
enum  
 Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume().
 
enum  
 Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton().
 
enum  
 Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton().
 
enum  
 Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary().
 
Flags for the constant part of the residual
enum  
 Whether to call the local operator's lambda_volume().
 
enum  
 Whether to call the local operator's lambda_volume_post_skeleton().
 
enum  
 Whether to call the local operator's lambda_skeleton().
 
enum  
 Whether to call the local operator's lambda_boundary().
 
Special flags
enum  
 Whether to visit the skeleton methods from both sides.
 
enum  
 Wheter the local operator describes a linear problem.
 

Public Member Functions

void setTime (typename T::Traits::RangeFieldType t)
 set time in parameter class
 
void preStep (typename T::Traits::RangeFieldType time, typename T::Traits::RangeFieldType dt, int stages)
 to be called once before each time step
 
void preStage (typename T::Traits::RangeFieldType time, int r)
 to be called once before each stage
 
void postStage ()
 to be called once at the end of each stage
 
T::Traits::RangeFieldType suggestTimestep (typename T::Traits::RangeFieldType dt) const
 to be called once before each stage
 
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
 
void jacobian_apply_volume (const EG &eg, const LFSU &lfsu, const X &x, const X &z, const LFSV &lfsv, Y &y) const
 apply local jacobian of the volume term
 
void jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Jacobian &mat) const
 compute local jacobian of the volume term
 
void jacobian_apply_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, Y &y_s, Y &y_n) const
 apply local jacobian of the skeleton term
 
void jacobian_apply_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n) const
 apply local jacobian of the skeleton term
 
void jacobian_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, Jacobian &mat_ss, Jacobian &mat_sn, Jacobian &mat_ns, Jacobian &mat_nn) const
 compute local jacobian of the skeleton term
 
void jacobian_apply_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s) const
 apply local jacobian of the boundaryterm
 
void jacobian_apply_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const X &z_s, const LFSV &lfsv_s, Y &y_s) const
 apply local jacobian of the boundaryterm
 
void jacobian_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Jacobian &mat_ss) const
 compute local jacobian of the boundary term
 
T::Traits::RangeFieldType getTime () const
 get current time More...
 
void postStep ()
 to be called once at the end of each time step More...
 
int getStage () const
 get current stage More...
 

Detailed Description

template<typename T, typename FEM>
class Dune::PDELab::DGMaxwellSpatialOperator< T, FEM >

Spatial local operator for discontinuous Galerkin method for Maxwells Equations.

\begin{align*} - \nabla \times (\mu^{-1} B) + (\frac\sigma\epsilon) D &= j \\ + \nabla \times (\epsilon^{-1} D) &= 0 \end{align*}

with the state vector \(u=(D,B)^T\) having 2*dim components

  • Assumes that the local function space is a power space with 2*dim identical components.
  • Actually assumes dim==3 in the flux computation
  • Assumes Galerkin method, i.e. U=V
Template Parameters
Tparameter class
FEMFinite Element Map needed to select the cache
Warning
This operator cannot deal with spatially varying \(\epsilon\) or \(\mu\). You will get a result, but it will contain spurious reflections. This is a known bug, see issue #41.

Member Function Documentation

◆ getStage()

int Dune::PDELab::InstationaryLocalOperatorDefaultMethods< T::Traits::RangeFieldType >::getStage ( ) const
inlineinherited

get current stage

Returns
The current stage number previously set by preStage().

◆ getTime()

T::Traits::RangeFieldType Dune::PDELab::InstationaryLocalOperatorDefaultMethods< T::Traits::RangeFieldType >::getTime ( ) const
inlineinherited

get current time

Returns
The time previously set by setTime().

◆ postStep()

void Dune::PDELab::InstationaryLocalOperatorDefaultMethods< T::Traits::RangeFieldType >::postStep ( )
inlineinherited

to be called once at the end of each time step

Note
With the OneStepMethod and the ExplicitOneStepMetod, for reasons unknown this is only called for temporal but not for spatial local operators. With the MultiStepMethod this is called for all local operators.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 24, 23:30, 2024)