dune-pdelab 2.7-git
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode > Class Template Reference

The local assembler for DUNE grids. More...

#include <dune/pdelab/gridoperator/default/localassembler.hh>

Inheritance diagram for Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >:
Inheritance graph

Public Types

typedef Dune::PDELab::LocalAssemblerTraits< GO > Traits
 The traits class.
 
typedef Traits::Residual::ElementType RangeField
 The local operators type for real numbers e.g. time.
 
typedef RangeField Real
 
typedef Traits::TrialGridFunctionSpace GFSU
 
typedef Traits::TestGridFunctionSpace GFSV
 
typedef Traits::TrialGridFunctionSpaceConstraints CU
 
typedef Traits::TestGridFunctionSpaceConstraints CV
 
typedef Dune::PDELab::LocalAssemblerBase< typename Traits::MatrixBackend, CU, CVBase
 The base class of this local assembler.
 
typedef LOP LocalOperator
 The local operator.
 
typedef B::size_type SizeType
 
typedef Dune::PDELab::LocalFunctionSpace< GFSU, Dune::PDELab::TrialSpaceTagLFSU
 
typedef Dune::PDELab::LocalFunctionSpace< GFSV, Dune::PDELab::TestSpaceTagLFSV
 
typedef LFSIndexCache< LFSU, CULFSUCache
 
typedef LFSIndexCache< LFSV, CVLFSVCache
 

Public Member Functions

 DefaultLocalAssembler (LOP &lop, std::shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
 Constructor with empty constraints.
 
 DefaultLocalAssembler (LOP &lop, const CU &cu, const CV &cv, std::shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
 Constructor for non trivial constraints.
 
LOP & localOperator ()
 get a reference to the local operator
 
const LOP & localOperator () const
 get a reference to the local operator
 
template<class EG >
bool skipEntity (const EG &eg) const
 
template<class IG >
bool skipIntersection (const IG &ig) const
 
void setTime (Real time_)
 
RangeField weight () const
 Obtain the weight that was set last.
 
void setWeight (RangeField weight)
 Notifies the assembler about the current weight of assembling.
 
bool reconstructBorderEntries () const
 
bool doPreProcessing () const
 Query whether to do preprocessing in the engines.
 
void preProcessing (bool v)
 
bool doPostProcessing () const
 Query whether to do postprocessing in the engines.
 
void postProcessing (bool v)
 
const GO::Traits::TrialGridFunctionSpaceConstraints & trialConstraints () const
 get the constraints on the trial grid function space
 
const GO::Traits::TestGridFunctionSpaceConstraints & testConstraints () const
 get the constraints on the test grid function space
 
std::enable_if< AlwaysTrue< X >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type forwardtransform (X &x, const bool postrestrict=false) const
 Transforms a vector $ \boldsymbol{x} $ from $
V$ to $ V'$. If postrestrict == true then $\boldsymbol{R}^T_{\boldsymbol{\tilde U}', \boldsymbol{U}'}
\boldsymbol{S}_{\boldsymbol{\tilde V}}$ is applied instead of the full transformation.

 
std::enable_if< AlwaysTrue< X >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type forwardtransform (X &x, const bool postrestrict=false) const
 
std::enable_if< AlwaysTrue< X >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type backtransform (X &x, const bool prerestrict=false) const
 Transforms a vector $ \boldsymbol{x} $ from $
V'$ to $ V$. If prerestrict == true then $\boldsymbol{S}^T_{\boldsymbol{\tilde U}}$ is applied instead of the full transformation.

 
std::enable_if< AlwaysTrue< X >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type backtransform (X &x, const bool prerestrict=false) const
 
void preStage (Real time_, int r_)
 
void preStep (Real time_, Real dt_, std::size_t stages_)
 
void postStep ()
 
void postStage ()
 
Real suggestTimestep (Real dt) const
 
LocalPatternAssemblerEnginelocalPatternAssemblerEngine (typename Traits::MatrixPattern &p)
 
LocalResidualAssemblerEnginelocalResidualAssemblerEngine (typename Traits::Residual &r, const typename Traits::Solution &x)
 
LocalJacobianAssemblerEnginelocalJacobianAssemblerEngine (typename Traits::Jacobian &a, const typename Traits::Solution &x)
 
LocalJacobianApplyAssemblerEnginelocalJacobianApplyAssemblerEngine (const typename Traits::Domain &update, typename Traits::Range &result)
 
LocalJacobianApplyAssemblerEnginelocalJacobianApplyAssemblerEngine (const typename Traits::Domain &solution, const typename Traits::Domain &update, typename Traits::Range &result)
 

Static Public Member Functions

static constexpr bool doAlphaVolume ()
 Query methods for the assembler engines. Theses methods do not belong to the assembler interface, but simplify the implementations of query methods in the engines;.
 
static constexpr bool doLambdaVolume ()
 
static constexpr bool doAlphaSkeleton ()
 
static constexpr bool doLambdaSkeleton ()
 
static constexpr bool doAlphaBoundary ()
 
static constexpr bool doLambdaBoundary ()
 
static constexpr bool doAlphaVolumePostSkeleton ()
 
static constexpr bool doLambdaVolumePostSkeleton ()
 
static constexpr bool doSkeletonTwoSided ()
 
static constexpr bool doPatternVolume ()
 
static constexpr bool doPatternSkeleton ()
 
static constexpr bool doPatternBoundary ()
 
static constexpr bool doPatternVolumePostSkeleton ()
 
static constexpr bool isLinear ()
 

Static Public Attributes

static const bool isNonOverlapping = nonoverlapping_mode
 

Protected Member Functions

void eread (const GCView &globalcontainer_view, LocalMatrix< T > &localcontainer) const
 read local stiffness matrix for entity
 
void ewrite (const LocalMatrix< T > &localcontainer, GCView &globalcontainer_view) const
 write local stiffness matrix for entity
 
void eadd (const LocalMatrix< T > &localcontainer, GCView &globalcontainer_view) const
 write local stiffness matrix for entity
 
std::enable_if< AlwaysTrue< M >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type scatter_jacobian (M &local_container, GCView &global_container_view, bool symmetric_mode) const
 Scatter local jacobian to global container.
 
std::enable_if< AlwaysTrue< M >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints, EmptyTransformation >::value >::type scatter_jacobian (M &local_container, GCView &global_container_view, bool symmetric_mode) const
 
void etadd_symmetric (M &localcontainer, GCView &globalcontainer_view) const
 Add local matrix to global matrix, and apply Dirichlet constraints in a symmetric fashion. Apart from that, identical to etadd().
 
void etadd (const M &localcontainer, GCView &globalcontainer_view) const
 
std::enable_if< std::is_same< RI, CI >::value >::type add_diagonal_entry (Pattern &pattern, const RI &ri, const CI &ci) const
 
std::enable_if<!std::is_same< RI, CI >::value >::type add_diagonal_entry (Pattern &pattern, const RI &ri, const CI &ci) const
 
void add_entry (P &globalpattern, const LFSVIndices &lfsv_indices, Index i, const LFSUIndices &lfsu_indices, Index j) const
 Adding matrix entry to pattern with respect to the constraints contributions. This assembles the entries addressed by etadd(..). See the documentation there for more information about the matrix pattern.
 
void set_trivial_rows (const GFSV &gfsv, GC &globalcontainer, const C &c) const
 insert dirichlet constraints for row and assemble T^T_U in constrained rows
 
void set_trivial_rows (const GFSV &gfsv, GC &globalcontainer, const EmptyTransformation &c) const
 
void handle_dirichlet_constraints (const GFSV &gfsv, GC &globalcontainer) const
 

Protected Attributes

const GO::Traits::TrialGridFunctionSpaceConstraints * pconstraintsu
 
const GO::Traits::TestGridFunctionSpaceConstraints * pconstraintsv
 

Static Protected Attributes

static GO::Traits::TrialGridFunctionSpaceConstraints emptyconstraintsu
 
static GO::Traits::TestGridFunctionSpaceConstraints emptyconstraintsv
 
typedef DefaultLocalPatternAssemblerEngine< DefaultLocalAssemblerLocalPatternAssemblerEngine
 
typedef DefaultLocalResidualAssemblerEngine< DefaultLocalAssemblerLocalResidualAssemblerEngine
 
typedef DefaultLocalJacobianAssemblerEngine< DefaultLocalAssemblerLocalJacobianAssemblerEngine
 
typedef DefaultLocalJacobianApplyAssemblerEngine< DefaultLocalAssemblerLocalJacobianApplyAssemblerEngine
 

Detailed Description

template<typename GO, typename LOP, bool nonoverlapping_mode = false>
class Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >

The local assembler for DUNE grids.

Template Parameters
GFSUGridFunctionSpace for ansatz functions
GFSVGridFunctionSpace for test functions
XThe solution vector representation type
RThe residual vector representation type
AThe jacobian matrix representation type
BThe matrix backend
PThe matrix pattern representation type
CUConstraints maps for the individual dofs (trial space)
CVConstraints maps for the individual dofs (test space)

Member Typedef Documentation

◆ Base

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Dune::PDELab::LocalAssemblerBase<typename Traits::MatrixBackend,CU,CV> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::Base

The base class of this local assembler.

◆ CU

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Traits::TrialGridFunctionSpaceConstraints Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::CU

◆ CV

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Traits::TestGridFunctionSpaceConstraints Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::CV

◆ GFSU

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Traits::TrialGridFunctionSpace Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::GFSU

◆ GFSV

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Traits::TestGridFunctionSpace Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::GFSV

◆ LFSU

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Dune::PDELab::LocalFunctionSpace<GFSU, Dune::PDELab::TrialSpaceTag> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LFSU

The local function spaces

◆ LFSUCache

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef LFSIndexCache<LFSU,CU> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LFSUCache

◆ LFSV

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Dune::PDELab::LocalFunctionSpace<GFSV, Dune::PDELab::TestSpaceTag> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LFSV

◆ LFSVCache

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef LFSIndexCache<LFSV,CV> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LFSVCache

◆ LocalJacobianApplyAssemblerEngine

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef DefaultLocalJacobianApplyAssemblerEngine<DefaultLocalAssembler> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LocalJacobianApplyAssemblerEngine

◆ LocalJacobianAssemblerEngine

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef DefaultLocalJacobianAssemblerEngine<DefaultLocalAssembler> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LocalJacobianAssemblerEngine

◆ LocalOperator

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef LOP Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LocalOperator

The local operator.

◆ LocalPatternAssemblerEngine

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef DefaultLocalPatternAssemblerEngine<DefaultLocalAssembler> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LocalPatternAssemblerEngine

The local assembler engines

◆ LocalResidualAssemblerEngine

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef DefaultLocalResidualAssemblerEngine<DefaultLocalAssembler> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::LocalResidualAssemblerEngine

◆ RangeField

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Traits::Residual::ElementType Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::RangeField

The local operators type for real numbers e.g. time.

◆ Real

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef RangeField Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::Real

◆ SizeType

typedef B::size_type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::SizeType
inherited

◆ Traits

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
typedef Dune::PDELab::LocalAssemblerTraits<GO> Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::Traits

The traits class.

Constructor & Destructor Documentation

◆ DefaultLocalAssembler() [1/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::DefaultLocalAssembler ( LOP &  lop,
std::shared_ptr< typename GO::BorderDOFExchanger >  border_dof_exchanger 
)
inline

Constructor with empty constraints.

◆ DefaultLocalAssembler() [2/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::DefaultLocalAssembler ( LOP &  lop,
const CU cu,
const CV cv,
std::shared_ptr< typename GO::BorderDOFExchanger >  border_dof_exchanger 
)
inline

Constructor for non trivial constraints.

Member Function Documentation

◆ add_diagonal_entry() [1/2]

std::enable_if< std::is_same< RI, CI >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::add_diagonal_entry ( Pattern &  pattern,
const RI &  ri,
const CI &  ci 
) const
inlineprotectedinherited

◆ add_diagonal_entry() [2/2]

std::enable_if<!std::is_same< RI, CI >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::add_diagonal_entry ( Pattern &  pattern,
const RI &  ri,
const CI &  ci 
) const
inlineprotectedinherited

◆ add_entry()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::add_entry ( P &  globalpattern,
const LFSVIndices &  lfsv_indices,
Index  i,
const LFSUIndices &  lfsu_indices,
Index  j 
) const
inlineprotectedinherited

Adding matrix entry to pattern with respect to the constraints contributions. This assembles the entries addressed by etadd(..). See the documentation there for more information about the matrix pattern.

◆ backtransform() [1/2]

std::enable_if< AlwaysTrue< X >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::backtransform ( X &  x,
const bool  prerestrict = false 
) const
inlineinherited

Transforms a vector $ \boldsymbol{x} $ from $
V'$ to $ V$. If prerestrict == true then $\boldsymbol{S}^T_{\boldsymbol{\tilde U}}$ is applied instead of the full transformation.

◆ backtransform() [2/2]

std::enable_if< AlwaysTrue< X >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::backtransform ( X &  x,
const bool  prerestrict = false 
) const
inlineinherited

◆ doAlphaBoundary()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doAlphaBoundary ( )
inlinestaticconstexpr

◆ doAlphaSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doAlphaSkeleton ( )
inlinestaticconstexpr

◆ doAlphaVolume()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doAlphaVolume ( )
inlinestaticconstexpr

Query methods for the assembler engines. Theses methods do not belong to the assembler interface, but simplify the implementations of query methods in the engines;.

◆ doAlphaVolumePostSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doAlphaVolumePostSkeleton ( )
inlinestaticconstexpr

◆ doLambdaBoundary()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doLambdaBoundary ( )
inlinestaticconstexpr

◆ doLambdaSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doLambdaSkeleton ( )
inlinestaticconstexpr

◆ doLambdaVolume()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doLambdaVolume ( )
inlinestaticconstexpr

◆ doLambdaVolumePostSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doLambdaVolumePostSkeleton ( )
inlinestaticconstexpr

◆ doPatternBoundary()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPatternBoundary ( )
inlinestaticconstexpr

◆ doPatternSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPatternSkeleton ( )
inlinestaticconstexpr

◆ doPatternVolume()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPatternVolume ( )
inlinestaticconstexpr

◆ doPatternVolumePostSkeleton()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPatternVolumePostSkeleton ( )
inlinestaticconstexpr

◆ doPostProcessing()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPostProcessing ( ) const
inline

Query whether to do postprocessing in the engines.

This method is used by the engines.

◆ doPreProcessing()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doPreProcessing ( ) const
inline

Query whether to do preprocessing in the engines.

This method is used by the engines.

◆ doSkeletonTwoSided()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::doSkeletonTwoSided ( )
inlinestaticconstexpr

◆ eadd()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::eadd ( const LocalMatrix< T > &  localcontainer,
GCView &  globalcontainer_view 
) const
inlineprotectedinherited

write local stiffness matrix for entity

◆ eread()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::eread ( const GCView &  globalcontainer_view,
LocalMatrix< T > &  localcontainer 
) const
inlineprotectedinherited

read local stiffness matrix for entity

◆ etadd()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::etadd ( const M &  localcontainer,
GCView &  globalcontainer_view 
) const
inlineprotectedinherited

◆ etadd_symmetric()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::etadd_symmetric ( M &  localcontainer,
GCView &  globalcontainer_view 
) const
inlineprotectedinherited

Add local matrix to global matrix, and apply Dirichlet constraints in a symmetric fashion. Apart from that, identical to etadd().

◆ ewrite()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::ewrite ( const LocalMatrix< T > &  localcontainer,
GCView &  globalcontainer_view 
) const
inlineprotectedinherited

write local stiffness matrix for entity

◆ forwardtransform() [1/2]

std::enable_if< AlwaysTrue< X >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::forwardtransform ( X &  x,
const bool  postrestrict = false 
) const
inlineinherited

Transforms a vector $ \boldsymbol{x} $ from $
V$ to $ V'$. If postrestrict == true then $\boldsymbol{R}^T_{\boldsymbol{\tilde U}', \boldsymbol{U}'}
\boldsymbol{S}_{\boldsymbol{\tilde V}}$ is applied instead of the full transformation.

◆ forwardtransform() [2/2]

std::enable_if< AlwaysTrue< X >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::forwardtransform ( X &  x,
const bool  postrestrict = false 
) const
inlineinherited

◆ handle_dirichlet_constraints()

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::handle_dirichlet_constraints ( const GFSV &  gfsv,
GC &  globalcontainer 
) const
inlineprotectedinherited

◆ isLinear()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
static constexpr bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::isLinear ( )
inlinestaticconstexpr

◆ localJacobianApplyAssemblerEngine() [1/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LocalJacobianApplyAssemblerEngine & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localJacobianApplyAssemblerEngine ( const typename Traits::Domain solution,
const typename Traits::Domain update,
typename Traits::Range result 
)
inline

Returns a reference to the requested engine. This engine is completely configured and ready to use.

◆ localJacobianApplyAssemblerEngine() [2/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LocalJacobianApplyAssemblerEngine & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localJacobianApplyAssemblerEngine ( const typename Traits::Domain update,
typename Traits::Range result 
)
inline

Returns a reference to the requested engine. This engine is completely configured and ready to use.

◆ localJacobianAssemblerEngine()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LocalJacobianAssemblerEngine & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localJacobianAssemblerEngine ( typename Traits::Jacobian a,
const typename Traits::Solution x 
)
inline

Returns a reference to the requested engine. This engine is completely configured and ready to use.

◆ localOperator() [1/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LOP & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localOperator ( )
inline

get a reference to the local operator

◆ localOperator() [2/2]

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
const LOP & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localOperator ( ) const
inline

get a reference to the local operator

◆ localPatternAssemblerEngine()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LocalPatternAssemblerEngine & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localPatternAssemblerEngine ( typename Traits::MatrixPattern p)
inline

Access methods which provid "ready to use" engines Returns a reference to the requested engine. This engine is completely configured and ready to use.

◆ localResidualAssemblerEngine()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
LocalResidualAssemblerEngine & Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::localResidualAssemblerEngine ( typename Traits::Residual r,
const typename Traits::Solution x 
)
inline

Returns a reference to the requested engine. This engine is completely configured and ready to use.

◆ postProcessing()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::postProcessing ( bool  v)
inline

This method allows to set the behavior with regard to any postprocessing within the engines. It is called by the setupGridOperators() method of the GridOperator and should not be called directly.

◆ postStage()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::postStage ( )
inline

◆ postStep()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::postStep ( )
inline

◆ preProcessing()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::preProcessing ( bool  v)
inline

This method allows to set the behavior with regard to any preprocessing within the engines. It is called by the setupGridOperators() method of the GridOperator and should not be called directly.

◆ preStage()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::preStage ( Real  time_,
int  r_ 
)
inline

Time stepping interface

◆ preStep()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::preStep ( Real  time_,
Real  dt_,
std::size_t  stages_ 
)
inline

◆ reconstructBorderEntries()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::reconstructBorderEntries ( ) const
inline

◆ scatter_jacobian() [1/2]

std::enable_if< AlwaysTrue< M >::value &&!std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::scatter_jacobian ( M &  local_container,
GCView &  global_container_view,
bool  symmetric_mode 
) const
inlineprotectedinherited

Scatter local jacobian to global container.

◆ scatter_jacobian() [2/2]

std::enable_if< AlwaysTrue< M >::value &&std::is_same< GO::Traits::TestGridFunctionSpaceConstraints , EmptyTransformation >::value >::type Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::scatter_jacobian ( M &  local_container,
GCView &  global_container_view,
bool  symmetric_mode 
) const
inlineprotectedinherited

◆ set_trivial_rows() [1/2]

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::set_trivial_rows ( const GFSV &  gfsv,
GC &  globalcontainer,
const C &  c 
) const
inlineprotectedinherited

insert dirichlet constraints for row and assemble T^T_U in constrained rows

◆ set_trivial_rows() [2/2]

void Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::set_trivial_rows ( const GFSV &  gfsv,
GC &  globalcontainer,
const EmptyTransformation c 
) const
inlineprotectedinherited

◆ setTime()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::setTime ( Real  time_)
inline

Notifies the local assembler about the current time of assembling. Should be called before assembling if the local operator has time dependencies.

◆ setWeight()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
void Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::setWeight ( RangeField  weight)
inline

Notifies the assembler about the current weight of assembling.

◆ skipEntity()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
template<class EG >
bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::skipEntity ( const EG &  eg) const
inline

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.

◆ skipIntersection()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
template<class IG >
bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::skipIntersection ( const IG &  ig) const
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.

◆ suggestTimestep()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
Real Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::suggestTimestep ( Real  dt) const
inline

◆ testConstraints()

const GO::Traits::TestGridFunctionSpaceConstraints & Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::testConstraints ( ) const
inlineinherited

get the constraints on the test grid function space

◆ trialConstraints()

const GO::Traits::TrialGridFunctionSpaceConstraints & Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::trialConstraints ( ) const
inlineinherited

get the constraints on the trial grid function space

◆ weight()

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
RangeField Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::weight ( ) const
inline

Obtain the weight that was set last.

Member Data Documentation

◆ emptyconstraintsu

GO::Traits::TrialGridFunctionSpaceConstraints Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::emptyconstraintsu
staticprotectedinherited

◆ emptyconstraintsv

GO::Traits::TestGridFunctionSpaceConstraints Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::emptyconstraintsv
staticprotectedinherited

◆ isNonOverlapping

template<typename GO , typename LOP , bool nonoverlapping_mode = false>
const bool Dune::PDELab::DefaultLocalAssembler< GO, LOP, nonoverlapping_mode >::isNonOverlapping = nonoverlapping_mode
static

◆ pconstraintsu

const GO::Traits::TrialGridFunctionSpaceConstraints * Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::pconstraintsu
protectedinherited

◆ pconstraintsv

const GO::Traits::TestGridFunctionSpaceConstraints * Dune::PDELab::LocalAssemblerBase< GO::Traits::MatrixBackend , GO::Traits::TrialGridFunctionSpaceConstraints , GO::Traits::TestGridFunctionSpaceConstraints >::pconstraintsv
protectedinherited

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