DUNE PDELab (git)
The local assembler engine which handles the integration parts as provided by the global assemblers. More...
#include <dune/pdelab/gridoperator/common/assembler.hh>
Public Types | |
typedef LocalAssemblerInterface | LocalAssembler |
The type of the local assembler. | |
Public Member Functions | |
const LocalAssembler & | localAssembler () |
Access to the superior local assembler object. | |
Query methods | |
Query methods indicating which assembling methods need to be called by the global assembler. | |
bool | requireSkeleton () const |
bool | requireSkeletonTwoSided () const |
bool | requireUVVolume () const |
bool | requireVVolume () const |
bool | requireUVSkeleton () const |
bool | requireVSkeleton () const |
bool | requireUVBoundary () const |
bool | requireVBoundary () const |
bool | requireUVProcessor () const |
bool | requireVProcessor () const |
bool | requireUVEnrichedCoupling () const |
bool | requireVEnrichedCoupling () const |
bool | requireUVVolumePostSkeleton () const |
bool | requireVVolumePostSkeleton () const |
Assembling methods | |
All local function spaces as provided in these methods are already bound to the grid cell corresponding to the entity part eg or intersection part ig . | |
template<typename EG > | |
bool | assembleCell (const EG &eg) |
Deprecated. Use skipEntity instead. | |
template<typename EG > | |
bool | skipEntity (const EG &eg) |
template<typename IG > | |
bool | skipIntersection (const IG &ig) |
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_S , typename LFSV_S > | |
void | assembleUVBoundary (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
template<typename IG , typename LFSV_S > | |
void | assembleVBoundary (const IG &ig, const LFSV_S &lfsv_s) |
template<typename IG , typename LFSU_S , typename LFSV_S > | |
void | assembleUVProcessor (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
template<typename IG , typename LFSV_S > | |
void | assembleVProcessor (const IG &ig, const LFSV_S &lfsv_s) |
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) |
void | preAssembly () |
Called directly before assembling. | |
void | postAssembly () |
Called last thing after assembling. | |
Notifications | |
Notification methods called by the global assembler when binding and unbinding the local function spaces. | |
void | onBindLFSUV (const EG &eg, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
void | onBindLFSV (const EG &eg, const LFSV_S &lfsv_s) |
void | onBindLFSUVInside (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
void | onBindLFSVInside (const IG &ig, const LFSV_S &lfsv_s) |
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) |
void | onBindLFSVOutside (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n) |
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_Coupling &lfsu_coupling, const LFSV_Coupling &lfsv_coupling) |
void | onBindLFSVCoupling (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_Coupling &lfsv_coupling) |
void | onUnbindLFSUV (const EG &eg, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
void | onUnbindLFSV (const EG &eg, const LFSV_S &lfsv_s) |
void | onUnbindLFSUVInside (const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s) |
void | onUnbindLFSVInside (const IG &ig, const LFSV_S &lfsv_s) |
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) |
void | onUnbindLFSVOutside (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n) |
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_Coupling &lfsu_coupling, const LFSV_Coupling &lfsv_coupling) |
void | onUnbindLFSVCoupling (const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_Coupling &lfsv_coupling) |
Loading trial space coefficients | |
Tells the engine to load the local coefficients for the given local function space. | |
void | loadCoefficientsLFSUInside (const LFSU_S &lfsu_s) |
void | loadCoefficientsLFSUOutside (const LFSU_N &lfsu_n) |
void | loadCoefficientsLFSUCoupling (const LFSU_Coupling &lfsu_coupling) |
Assign the assembler target objects | |
These methods assign the objects into which the assembler should assemble i.e. the solution vector from which the local coefficients are to be extracted. | |
void | setSolution (const X &x) |
void | setPattern (const P &p) |
void | setJacobian (const J &j) |
void | setResidual (const R &r) |
Detailed Description
The local assembler engine which handles the integration parts as provided by the global assemblers.
Member Function Documentation
◆ assembleUVBoundary()
void Dune::PDELab::LocalAssemblerEngine::assembleUVBoundary | ( | const IG & | ig, |
const LFSU_S & | lfsu_s, | ||
const LFSV_S & | lfsv_s | ||
) |
Assembling for a boundary codim 1 entity part for trial and test local function spaces.
◆ assembleUVProcessor()
void Dune::PDELab::LocalAssemblerEngine::assembleUVProcessor | ( | const IG & | ig, |
const LFSU_S & | lfsu_s, | ||
const LFSV_S & | lfsv_s | ||
) |
Assembling for a processor boundary codim 1 entity part for trial and test local function spaces. Specifically, this method will be called for intersections for which it holds that both ig.boundary() and ig.neighbor() return false, i.e. intersections for which it is not possible to obtain the outside entity.
◆ assembleUVSkeleton()
void Dune::PDELab::LocalAssemblerEngine::assembleUVSkeleton | ( | const IG & | ig, |
const LFSU_S & | lfsu_s, | ||
const LFSV_S & | lfsv_s, | ||
const LFSU_N & | lfsu_n, | ||
const LFSV_N & | lfsv_n | ||
) |
Assembling for an interior codim 1 entity part for trial and test local function spaces.
◆ assembleUVVolume()
void Dune::PDELab::LocalAssemblerEngine::assembleUVVolume | ( | const EG & | eg, |
const LFSU & | lfsu, | ||
const LFSV & | lfsv | ||
) |
Assembling for a codim 0 entity part for trial and test local function spaces.
◆ assembleUVVolumePostSkeleton()
void Dune::PDELab::LocalAssemblerEngine::assembleUVVolumePostSkeleton | ( | const EG & | eg, |
const LFSU & | lfsu, | ||
const LFSV & | lfsv | ||
) |
Assembling for a codim 0 entity part for trial and test local function spaces which is called after the intersection parts of the current cell have been handled.
◆ assembleVBoundary()
void Dune::PDELab::LocalAssemblerEngine::assembleVBoundary | ( | const IG & | ig, |
const LFSV_S & | lfsv_s | ||
) |
Assembling for a boundary codim 1 entity part for test local function spaces.
◆ assembleVProcessor()
void Dune::PDELab::LocalAssemblerEngine::assembleVProcessor | ( | const IG & | ig, |
const LFSV_S & | lfsv_s | ||
) |
Assembling for a processor boundary codim 1 entity part for test local function spaces. Specifically, this method will be called for intersections for which it holds that both ig.boundary() and ig.neighbor() return false, i.e. intersections for which it is not possible to obtain the outside entity.
◆ assembleVSkeleton()
void Dune::PDELab::LocalAssemblerEngine::assembleVSkeleton | ( | const IG & | ig, |
const LFSV_S & | lfsv_s, | ||
const LFSV_N & | lfsv_n | ||
) |
Assembling for an interior codim 1 entity part for test local function spaces.
◆ assembleVVolume()
void Dune::PDELab::LocalAssemblerEngine::assembleVVolume | ( | const EG & | eg, |
const LFSV & | lfsv | ||
) |
Assembling for a codim 0 entity part for test local function spaces.
◆ assembleVVolumePostSkeleton()
void Dune::PDELab::LocalAssemblerEngine::assembleVVolumePostSkeleton | ( | const EG & | eg, |
const LFSV & | lfsv | ||
) |
Assembling for a codim 0 entity part for test local function spaces which is called after the intersection parts of the current cell have been handled.
◆ skipEntity()
bool Dune::PDELab::LocalAssemblerEngine::skipEntity | ( | const EG & | eg | ) |
Assembling method which is called for a given grid cell. It is called before the local function spaces are bound to the cell and the coefficients for the local trial function space are extracted.
- Returns
- Indicate whether assembling of this cell may be aborted after the call of this method. This may avoid unneccessary costs due to binding of the local function spaces etc.
◆ skipIntersection()
bool Dune::PDELab::LocalAssemblerEngine::skipIntersection | ( | const IG & | ig | ) |
Assembling method which is called for a given grid intersection. It is called after the cell local function space is bound and before the local function spaces is bound to the outside cell (if any) and similarly for the extraction of the coefficients for the local trial function space.
- Returns
- Indicate whether assembling of this intersection may be aborted after the call of this method. This may avoid unneccessary costs due to binding of the local function spaces etc.
The documentation for this class was generated from the following file:
- dune/pdelab/gridoperator/common/assembler.hh