DUNE PDELab (2.8)

Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA > Class Template Reference

The fast DG local assembler engine for DUNE grids which assembles the residual vector. More...

#include <dune/pdelab/gridoperator/fastdg/residualengine.hh>

Public Types

typedef LA LocalAssembler
 The type of the wrapping local assembler.
 
typedef LA::LocalOperator LOP
 The type of the local operator.
 
typedef LA::Traits::Residual Residual
 The type of the residual vector.
 
typedef LA::Traits::Solution Solution
 The type of the solution vector.
 
typedef LA::LFSU LFSU
 The local function spaces.
 

Public Member Functions

 FastDGLocalResidualAssemblerEngine (const LocalAssembler &local_assembler_)
 Constructor. More...
 
 FastDGLocalResidualAssemblerEngine (const FastDGLocalResidualAssemblerEngine &other)
 copy contructor More...
 
const LocalAssemblerlocalAssembler () const
 Public access to the wrapping local assembler.
 
const LocalAssembler::Traits::TrialGridFunctionSpaceConstraints & trialConstraints () const
 Trial space constraints.
 
const LocalAssembler::Traits::TestGridFunctionSpaceConstraints & testConstraints () const
 Test space constraints.
 
void setResidual (Residual &residual_)
 
void setSolution (const Solution &solution_)
 
bool requireSkeleton () const
 
template<typename EG , typename LFSUC , typename LFSVC >
void onBindLFSUV (const EG &eg, const LFSUC &lfsu_cache, const LFSVC &lfsv_cache)
 
template<typename EG , typename LFSVC >
void onUnbindLFSV (const EG &eg, const LFSVC &lfsv_cache)
 
template<typename LFSUC >
void loadCoefficientsLFSUInside (const LFSUC &lfsu_s_cache)
 
void postAssembly (const GFSU &gfsu, const GFSV &gfsv)
 
Query methods - return false by default
bool requireUVProcessor () const
 
bool requireVProcessor () const
 
bool requireUVEnrichedCoupling () const
 
bool requireVEnrichedCoupling () const
 
auto partition () const
 
Callbacks for LocalFunctionSpace binding and unbinding events
template<typename EG , typename LFSU , typename LFSV >
void onBindLFSUV (const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename EG , typename LFSV >
void onBindLFSV (const EG &eg, const LFSV &lfsv)
 
template<typename EG , typename LFSU , typename LFSV >
void onUnbindLFSUV (const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename EG , typename LFSV_S >
void onUnbindLFSV (const EG &eg, const LFSV_S &lfsv_s)
 
template<typename IG , typename LFSU , typename LFSV >
void onBindLFSUVInside (const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename IG , typename LFSV >
void onBindLFSVInside (const IG &ig, const LFSV &lfsv)
 
template<typename IG , typename LFSU , typename LFSV >
void onUnbindLFSUVInside (const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename IG , typename LFSV_S >
void onUnbindLFSVInside (const IG &ig, const LFSV_S &lfsv_s)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N >
void onBindLFSUVOutside (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSV_S , typename LFSV_N >
void onBindLFSVOutside (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N >
void onUnbindLFSUVOutside (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSV_S , typename LFSV_N >
void onUnbindLFSVOutside (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N , typename LFSU_C , typename LFSV_C >
void onBindLFSUVCoupling (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
 
template<typename IG , typename LFSV_S , typename LFSV_N , typename LFSV_C >
void onBindLFSVCoupling (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N , typename LFSU_C , typename LFSV_C >
void onUnbindLFSUVCoupling (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
 
template<typename IG , typename LFSV_S , typename LFSV_N , typename LFSV_C >
void onUnbindLFSVCoupling (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
 
template<typename LFSU >
void loadCoefficientsLFSUInside (const LFSU &lfsu_s)
 
template<typename LFSU_N >
void loadCoefficientsLFSUOutside (const LFSU_N &lfsu_n)
 
template<typename LFSU_C >
void loadCoefficientsLFSUCoupling (const LFSU_C &lfsu_c)
 
Assembly methods
template<typename EG >
bool assembleCell (const EG &eg)
 Deprecated. Use skipEntity insted.
 
template<typename EG , typename LFSU , typename LFSV >
void assembleUVVolume (const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename EG , typename LFSV >
void assembleVVolume (const EG &eg, const LFSV &lfsv)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N >
void assembleUVSkeleton (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSV_S , typename LFSV_N >
void assembleVSkeleton (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
 
template<typename IG , typename LFSU , typename LFSV >
void assembleUVBoundary (const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename IG , typename LFSV >
void assembleVBoundary (const IG &ig, const LFSV &lfsv)
 
template<typename IG , typename LFSU , typename LFSV >
void assembleUVProcessor (const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename IG , typename LFSV >
void assembleVProcessor (const IG &ig, const LFSV &lfsv)
 
template<typename IG , typename LFSU_S , typename LFSV_S , typename LFSU_N , typename LFSV_N , typename LFSU_C , typename LFSV_C >
void assembleUVEnrichedCoupling (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
 
template<typename IG , typename LFSV_S , typename LFSV_N , typename LFSV_C >
void assembleVEnrichedCoupling (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
 
template<typename EG , typename LFSU , typename LFSV >
void assembleUVVolumePostSkeleton (const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
 
template<typename EG , typename LFSV >
void assembleVVolumePostSkeleton (const EG &eg, const LFSV &lfsv)
 
Global assembly preparation and finalization methods
void preAssembly ()
 
template<typename GFSU , typename GFSV >
void postAssembly (const GFSU &gfsu, const GFSV &gfsv)
 
template<typename EG >
bool skipEntity (const EG &eg)
 
template<typename IG >
bool skipIntersection (const IG &ig)
 

Detailed Description

template<typename LA>
class Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >

The fast DG local assembler engine for DUNE grids which assembles the residual vector.

Template Parameters
LAThe local assembler

Constructor & Destructor Documentation

◆ FastDGLocalResidualAssemblerEngine() [1/2]

template<typename LA >
Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::FastDGLocalResidualAssemblerEngine ( const LocalAssembler local_assembler_)
inline

Constructor.

Parameters
[in]local_assembler_The local assembler object which creates this engine

◆ FastDGLocalResidualAssemblerEngine() [2/2]

template<typename LA >
Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::FastDGLocalResidualAssemblerEngine ( const FastDGLocalResidualAssemblerEngine< LA > &  other)
inline

copy contructor

Note
This does not create an exact copy. Instead it copies the global views, such that they point to the same global vector. Local matrices/vectors are constructed freshly without copying the content. Views into the local matrices/vectors are constructed freshly so they reference the local matrices/vector in the new object, and are given unit weight. This essentially creates an engine object that is not currently bound to any entity, but otherwise behaves like the object it was contructed from.
This constructor is needed to implement splitting constructors in derived classes.

Member Function Documentation

◆ loadCoefficientsLFSUInside()

template<typename LA >
template<typename LFSUC >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::loadCoefficientsLFSUInside ( const LFSUC &  lfsu_s_cache)
inline

Methods for loading of the local function's coefficients

◆ onBindLFSUV()

template<typename LA >
template<typename EG , typename LFSUC , typename LFSVC >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::onBindLFSUV ( const EG &  eg,
const LFSUC &  lfsu_cache,
const LFSVC &  lfsv_cache 
)
inline

Called immediately after binding of local function space in global assembler.

◆ onUnbindLFSV()

template<typename LA >
template<typename EG , typename LFSVC >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::onUnbindLFSV ( const EG &  eg,
const LFSVC &  lfsv_cache 
)
inline

Called when the local function space is about to be rebound or discarded

◆ postAssembly()

template<typename LA >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::postAssembly ( const GFSU &  gfsu,
const GFSV &  gfsv 
)
inline

Notifier functions, called immediately before and after assembling

References Dune::PDELab::constrain_residual().

◆ requireSkeleton()

template<typename LA >
bool Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::requireSkeleton ( ) const
inline

Query methods for the global grid assembler

◆ setResidual()

template<typename LA >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::setResidual ( Residual residual_)
inline

Set current residual vector. Should be called prior to assembling.

Referenced by Dune::PDELab::FastDGLocalAssembler< GO, LOP, nonoverlapping_mode >::localResidualAssemblerEngine().

◆ setSolution()

template<typename LA >
void Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::setSolution ( const Solution solution_)
inline

Set current solution vector. Should be called prior to assembling.

Referenced by Dune::PDELab::FastDGLocalAssembler< GO, LOP, nonoverlapping_mode >::localResidualAssemblerEngine().

◆ skipEntity()

template<typename LA >
template<typename EG >
bool Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::skipEntity ( const EG &  eg)
inline

Assembling methods Assemble on a given cell without function spaces.

Returns
If true, the assembling for this cell is assumed to be complete and the assembler continues with the next grid cell.

References Dune::InteriorEntity, and Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::localAssembler().

◆ skipIntersection()

template<typename LA >
template<typename IG >
bool Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::skipIntersection ( const IG &  ig)
inline

Assemble on a given intersection without function spaces.

Returns
If true, the assembling for this intersection is assumed to be complete and the assembler continues with the next grid intersection.

References Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::localAssembler().


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 (Dec 21, 23:30, 2024)