DUNE PDELab (git)
The fast DG local assembler engine for DUNE grids which assembles the residual vector. More...
#include <dune/pdelab/gridoperator/fastdg/residualengine.hh>
Public Member Functions | |
FastDGLocalResidualAssemblerEngine (const LocalAssembler &local_assembler_) | |
Constructor. More... | |
FastDGLocalResidualAssemblerEngine (const FastDGLocalResidualAssemblerEngine &other) | |
copy contructor More... | |
const LocalAssembler & | localAssembler () 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
class Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >
The fast DG local assembler engine for DUNE grids which assembles the residual vector.
- Template Parameters
-
LA The local assembler
Constructor & Destructor Documentation
◆ FastDGLocalResidualAssemblerEngine() [1/2]
|
inline |
Constructor.
- Parameters
-
[in] local_assembler_ The local assembler object which creates this engine
◆ FastDGLocalResidualAssemblerEngine() [2/2]
|
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()
|
inline |
Methods for loading of the local function's coefficients
◆ onBindLFSUV()
|
inline |
Called immediately after binding of local function space in global assembler.
◆ onUnbindLFSV()
|
inline |
Called when the local function space is about to be rebound or discarded
◆ postAssembly()
|
inline |
Notifier functions, called immediately before and after assembling
References Dune::PDELab::constrain_residual().
◆ requireSkeleton()
|
inline |
Query methods for the global grid assembler
◆ setResidual()
|
inline |
Set current residual vector. Should be called prior to assembling.
Referenced by Dune::PDELab::FastDGLocalAssembler< GO, LOP, nonoverlapping_mode >::localResidualAssemblerEngine().
◆ setSolution()
|
inline |
Set current solution vector. Should be called prior to assembling.
Referenced by Dune::PDELab::FastDGLocalAssembler< GO, LOP, nonoverlapping_mode >::localResidualAssemblerEngine().
◆ skipEntity()
|
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()
|
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:
- dune/pdelab/gridoperator/fastdg/residualengine.hh