KASKADE 7 development version
|
Object that represents the linearization of a nonlinear functional, implements AbstractLineariztion. More...
#include <newton_bridge.hh>
Object that represents the linearization of a nonlinear functional, implements AbstractLineariztion.
Can be connected to an AdaptiveGrid to be able to know, when the grid changes Emits a signal if it is invalidated. This can be used by a solver to flush data
Currently there are two implementations available with an automatic switch depending on the type of vector used. This switch is implemented via LinearizationTraits:
The first implementation is used in case of a Dune::BlockVector<T>. Then the creation of a linear system is forwarded to the functional
The second implementation is used in case of a VariableSet. Here a VariationalFunctionalAssembler is used to create the linear system.
Implementations have to provide the following routines Example: DuneLinearization
Linearizations can be defined to set the right hand side to 0 everywhere, except in [rhsstart,rhsfinal) this is useful on the optimization context Linear Solver. Can get a signal from Linearization in order to flush its data, implements AbstractLinearSolver Implementation must support the following member functions:
There is one pure virtual function to be overloaded Bridge class for Functionals. Its most prominent task is to create linearizations, implements AbstractFunctional
Definition at line 652 of file newton_bridge.hh.
Public Types | |
typedef FunctionalImpl::Scalar | Scalar |
Public Member Functions | |
Functional (FunctionalImpl *impl) | |
Functional (std::unique_ptr< FunctionalImpl > &&imp) | |
template<typename... ConstructorArguments> | |
Functional (const ConstructorArguments &... args) | |
std::unique_ptr< AbstractLinearization > | getLinearization (AbstractFunctionSpaceElement const &x) const |
virtual std::unique_ptr< AbstractFunctionSpaceElement > | getImageVector (AbstractFunctionSpaceElement const &x) const |
virtual bool | inDomain (AbstractFunctionSpaceElement const &x) const |
virtual double | evaluate (AbstractFunctionSpaceElement const &x) const |
Protected Attributes | |
std::unique_ptr< FunctionalImpl > | myImplementation |
typedef FunctionalImpl::Scalar Kaskade::Bridge::Functional< FunctionalImpl, DomainImpl, ImageImpl >::Scalar |
Definition at line 655 of file newton_bridge.hh.
|
inlineexplicit |
Definition at line 658 of file newton_bridge.hh.
|
inlineexplicit |
Definition at line 660 of file newton_bridge.hh.
|
inlineexplicit |
Definition at line 663 of file newton_bridge.hh.
|
inlinevirtualinherited |
Definition at line 226 of file abstract_interface.hh.
|
inlinevirtual |
Implements Kaskade::AbstractFunctional.
Definition at line 671 of file newton_bridge.hh.
|
inlinevirtual |
Implements Kaskade::AbstractFunctional.
Definition at line 665 of file newton_bridge.hh.
|
inlinevirtual |
Reimplemented from Kaskade::AbstractFunctional.
Definition at line 677 of file newton_bridge.hh.
|
protected |
Definition at line 682 of file newton_bridge.hh.
Referenced by Kaskade::Bridge::Functional< FunctionalImpl, DomainImpl, ImageImpl >::getLinearization(), and Kaskade::Bridge::Functional< FunctionalImpl, DomainImpl, ImageImpl >::inDomain().