dune-pdelab  2.7-git
Public Types | Public Member Functions | Static Public Attributes | List of all members
Dune::PDELab::OnTheFlyOperator< X, Y, GO > Class Template Reference

#include <dune/pdelab/backend/istl/seqistlsolverbackend.hh>

Inheritance diagram for Dune::PDELab::OnTheFlyOperator< X, Y, GO >:
Inheritance graph

Public Types

typedef X domain_type
 
typedef Y range_type
 
typedef X::field_type field_type
 

Public Member Functions

 OnTheFlyOperator (const GO &go_)
 
void setLinearizationPoint (const X &u)
 
virtual void apply (const X &x, Y &y) const override
 
virtual void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 
SolverCategory::Category category () const override
 

Static Public Attributes

static constexpr bool isLinear = GO::LocalAssembler::isLinear()
 

Detailed Description

template<typename X, typename Y, typename GO>
class Dune::PDELab::OnTheFlyOperator< X, Y, GO >

Create ISTL operator from a grid operator object

In the nonlinear case the operator need to be linearized by setting a linearization point before it can be used.

Template Parameters
XTrial vector.
YTest vector.
GOGrid operator that implements the jacobian apply

Member Typedef Documentation

◆ domain_type

template<typename X , typename Y , typename GO >
typedef X Dune::PDELab::OnTheFlyOperator< X, Y, GO >::domain_type

◆ field_type

template<typename X , typename Y , typename GO >
typedef X::field_type Dune::PDELab::OnTheFlyOperator< X, Y, GO >::field_type

◆ range_type

template<typename X , typename Y , typename GO >
typedef Y Dune::PDELab::OnTheFlyOperator< X, Y, GO >::range_type

Constructor & Destructor Documentation

◆ OnTheFlyOperator()

template<typename X , typename Y , typename GO >
Dune::PDELab::OnTheFlyOperator< X, Y, GO >::OnTheFlyOperator ( const GO &  go_)
inline

Member Function Documentation

◆ apply()

template<typename X , typename Y , typename GO >
virtual void Dune::PDELab::OnTheFlyOperator< X, Y, GO >::apply ( const X &  x,
Y &  y 
) const
inlineoverridevirtual

◆ applyscaleadd()

template<typename X , typename Y , typename GO >
virtual void Dune::PDELab::OnTheFlyOperator< X, Y, GO >::applyscaleadd ( field_type  alpha,
const X &  x,
Y &  y 
) const
inlineoverridevirtual

◆ category()

template<typename X , typename Y , typename GO >
SolverCategory::Category Dune::PDELab::OnTheFlyOperator< X, Y, GO >::category ( ) const
inlineoverride

◆ setLinearizationPoint()

template<typename X , typename Y , typename GO >
void Dune::PDELab::OnTheFlyOperator< X, Y, GO >::setLinearizationPoint ( const X &  u)
inline

Set linearization point. Must be called before apply() and applyscaleadd() for nonlinear problems.

Member Data Documentation

◆ isLinear

template<typename X , typename Y , typename GO >
constexpr bool Dune::PDELab::OnTheFlyOperator< X, Y, GO >::isLinear = GO::LocalAssembler::isLinear()
staticconstexpr

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