DUNE PDELab (git)

Dune::PDELab::LocalAssemblerInterface< B, CU, CV > Class Template Reference

The local assembler which provides the engines that drive the global assembler. More...

#include <dune/pdelab/gridoperator/common/assembler.hh>

Public Member Functions

template<class RF >
void setWeight (RF weight)
 Set current weight of assembling.
 
const CU & trialConstraints () const
 get the constraints on the trial grid function space
 
const CV & testConstraints () const
 get the constraints on the test grid function space
 
std::enable_if< AlwaysTrue< X >::value &&!std::is_same< CV, 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< CV, 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.

 
Notification functions for time step controller
template<class TT >
void setTime (TT time)
 Set current time of assembling.
 
template<typename TT >
void preStep (TT time, TT dt, std::size_t stages)
 Notify local assembler about upcoming time step.
 
void postStep ()
 Notify local assembler about completion of time step.
 
template<typename TT >
void preStage (TT time, std::size_t stage)
 Notify local assembler about upcoming time step stage.
 
void postStage ()
 Notify local assembler about completion of time step stage.
 
template<typename TT >
TT suggestTimestep (TT dt) const
 Suggest a valid time step size.
 
Access to the assembler engines
LocalPatternAssemblerEngine & localPatternAssemblerEngine (P &p)
 
LocalResidualAssemblerEngine & localResidualAssemblerEngine (R &r, const X &x)
 
LocalJacobianAssemblerEngine & localJacobianAssemblerEngine (A &a, const X &x)
 
LocalResidualJacobianAssemblerEngine & localResidualJacobianAssemblerEngine (R &r, A &a, const X &x)
 

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< CV, EmptyTransformation >::value >::type scatter_jacobian (M &local_container, GCView &global_container_view, bool symmetric_mode) const
 Scatter local jacobian to global container.
 
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 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
 

Detailed Description

template<typename B, typename CU, typename CV>
class Dune::PDELab::LocalAssemblerInterface< B, CU, CV >

The local assembler which provides the engines that drive the global assembler.

The local assembler provides engines for the standard operations of the grid operator. This includes setting up the pattern, computing the residual and the jacobian matrix.

It also provides a standard interface which may be used by implementations of time stepping methods.


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 12, 23:30, 2024)