DUNE PDELab (git)

Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 > Class Template Reference

The local assembler for one step methods. More...

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

Public Types

typedef LA0 LocalAssemblerDT0
 The types of the local assemblers of order one and zero.
 
typedef Dune::PDELab::LocalAssemblerBase< typename GO::Traits::MatrixBackend, typename GO::Traits::TrialGridFunctionSpaceConstraints, typename GO::Traits::TestGridFunctionSpaceConstraints > Base
 The base class.
 
typedef Traits::RangeField Real
 The local operators type for real numbers e.g. time.
 
typedef Dune::PDELab::TimeSteppingParameterInterface< RealOneStepParameters
 The type of the one step parameter object.
 

Public Member Functions

 OneStepLocalAssembler (LA0 &la0_, LA1 &la1_, typename Traits::Residual &const_residual_)
 Constructor with empty constraints.
 
void preStep (Real time_, Real dt_, int stages_)
 
void setMethod (const OneStepParameters &method_)
 Set the one step method parameters.
 
void setStage (int stage_)
 Set the current stage of the one step scheme.
 
void setDTAssemblingMode (DTAssemblingMode dt_mode_)
 
Real timeAtStage (int stage_) const
 Access time at given stage.
 
Real timeAtStage () const
 Access time at given stage.
 
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 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.

 
LocalPatternAssemblerEnginelocalPatternAssemblerEngine (typename Traits::MatrixPattern &p)
 
LocalPreStageAssemblerEnginelocalPreStageAssemblerEngine (const std::vector< typename Traits::Solution * > &x)
 
LocalResidualAssemblerEnginelocalResidualAssemblerEngine (typename Traits::Residual &r, const typename Traits::Solution &x)
 
LocalJacobianAssemblerEnginelocalJacobianAssemblerEngine (typename Traits::Jacobian &a, const typename Traits::Solution &x)
 
LocalExplicitPatternAssemblerEngine & localExplicitPatternAssemblerEngine (typename Traits::MatrixPattern &p)
 
LocalExplicitJacobianResidualAssemblerEnginelocalExplicitJacobianResidualAssemblerEngine (typename Traits::Jacobian &a, typename Traits::Residual &r0, typename Traits::Residual &r1, const std::vector< 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)
 

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.
 
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
 
typedef OneStepLocalPatternAssemblerEngine< OneStepLocalAssemblerLocalPatternAssemblerEngine
 

Detailed Description

template<typename GO, typename LA0, typename LA1>
class Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >

The local assembler for one step methods.

Template Parameters
LA0The local assembler for the temporal derivative term of order zero
LA1The local assembler for the temporal derivative term of order one

Member Typedef Documentation

◆ LocalPatternAssemblerEngine

template<typename GO , typename LA0 , typename LA1 >
typedef OneStepLocalPatternAssemblerEngine<OneStepLocalAssembler> Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::LocalPatternAssemblerEngine

The local assembler engines

Member Function Documentation

◆ localExplicitJacobianResidualAssemblerEngine()

template<typename GO , typename LA0 , typename LA1 >
LocalExplicitJacobianResidualAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::localExplicitJacobianResidualAssemblerEngine ( typename Traits::Jacobian a,
typename Traits::Residual r0,
typename Traits::Residual r1,
const std::vector< typename Traits::Solution * > &  x 
)
inline

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

References Dune::PDELab::OneStepLocalPreStageAssemblerEngine< OSLA >::setConstResiduals(), and Dune::PDELab::OneStepLocalPreStageAssemblerEngine< OSLA >::setSolutions().

◆ localExplicitPatternAssemblerEngine()

template<typename GO , typename LA0 , typename LA1 >
LocalExplicitPatternAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::localExplicitPatternAssemblerEngine ( typename Traits::MatrixPattern p)
inline

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

◆ localJacobianApplyAssemblerEngine() [1/2]

template<typename GO , typename LA0 , typename LA1 >
LocalJacobianApplyAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::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 LA0 , typename LA1 >
LocalJacobianApplyAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::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 LA0 , typename LA1 >
LocalJacobianAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::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.

References Dune::PDELab::OneStepLocalJacobianAssemblerEngine< OSLA >::setJacobian(), and Dune::PDELab::OneStepLocalJacobianAssemblerEngine< OSLA >::setSolution().

◆ localPatternAssemblerEngine()

template<typename GO , typename LA0 , typename LA1 >
LocalPatternAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::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.

References Dune::PDELab::OneStepLocalPatternAssemblerEngine< OSLA >::setPattern().

◆ localPreStageAssemblerEngine()

template<typename GO , typename LA0 , typename LA1 >
LocalPreStageAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::localPreStageAssemblerEngine ( const std::vector< typename Traits::Solution * > &  x)
inline

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

References Dune::PDELab::OneStepLocalPreStageAssemblerEngine< OSLA >::setConstResidual(), and Dune::PDELab::OneStepLocalPreStageAssemblerEngine< OSLA >::setSolutions().

◆ localResidualAssemblerEngine()

template<typename GO , typename LA0 , typename LA1 >
LocalResidualAssemblerEngine & Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::localResidualAssemblerEngine ( typename Traits::Residual r,
const typename Traits::Solution x 
)
inline

◆ preStep()

template<typename GO , typename LA0 , typename LA1 >
void Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::preStep ( Real  time_,
Real  dt_,
int  stages_ 
)
inline

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

References DUNE_THROW.

◆ setDTAssemblingMode()

template<typename GO , typename LA0 , typename LA1 >
void Dune::PDELab::OneStepLocalAssembler< GO, LA0, LA1 >::setDTAssemblingMode ( DTAssemblingMode  dt_mode_)
inline

Determines whether the time step size is multiplied to the mass term (first order time derivative) or the elliptic term (zero-th order time derivative).


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