DUNE-ACFEM (2.5.1)

Dune::ACFem::DifferentiableBlockConstraintsOperatorInterface< JacobianOperator, Traits > Class Template Reference

Interface class for a differentiable block-constraints-operator. More...

#include <dune/acfem/operators/constraints/blockconstraintsoperator.hh>

+ Collaboration diagram for Dune::ACFem::DifferentiableBlockConstraintsOperatorInterface< JacobianOperator, Traits >:

Public Member Functions

void jacobian (const DiscreteFunctionType &u, JacobianOperatorType &jOp) const
 The Jacobian of the operator. More...
 
size_t size () const
 Return the number of constrainted block-DoFs.
 
void rebuild () const
 An update method which has to be called initially or after mesh-adaptation, or for time-dependent constraint values to recompute the affine offset when moving to the next time-step.
 
void constrain (DiscreteFunctionType &w) const
 The solution operator; unconditionally install the given constraints into the argument. More...
 
void zeroConstrain (DiscreteFunctionType &w) const
 Unconditionally set the values of all masked DoFs to zero.
 
LocalOperatorType localOperator (const EntityType &entity) const
 Generate the local version of this operator from the given entitiy.
 
LocalOperatorType localOperator () const
 Generate the local version of this operator, must later be bound to an entity by calling its init() method.
 
void operator() (const DiscreteFunctionType &arg, DiscreteFunctionType &w) const
 Apply the operator to the given argument. More...
 
void constrain (DiscreteFunctionType &w) const
 The solution operator; unconditionally install the given constraints into the argument. More...
 
void zeroConstrain (DiscreteFunctionType &w) const
 Unconditionally set the values of all masked DoFs to zero.
 

Detailed Description

template<class JacobianOperator, class Traits>
class Dune::ACFem::DifferentiableBlockConstraintsOperatorInterface< JacobianOperator, Traits >

Interface class for a differentiable block-constraints-operator.

A block-constraints-operator is an operator which operates only on a sub-space of a discrete space by flagging a collection of block-DoFs as active. It can be used to implement, e.g., Dirichlet boundary constraints or bulk-constraints for primal/dual active set algorithms. It is meant to be composed with an ordinary operater. A constraints-operator which satisfies the interace defined below also has to provide a local operator version.

Member Function Documentation

◆ constrain() [1/2]

void Dune::ACFem::BlockConstraintsOperatorInterface< JacobianOperator::RangeFunctionType , Traits >::constrain ( DiscreteFunctionType &  w) const
inlineinherited

The solution operator; unconditionally install the given constraints into the argument.

This "solves"

\[ w - g = 0 \]

for w.

◆ constrain() [2/2]

template<class JacobianOperator , class Traits >
void Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::constrain ( DiscreteFunctionType &  w) const
inline

The solution operator; unconditionally install the given constraints into the argument.

This "solves"

\[ w - g = 0 \]

for w.

◆ jacobian()

template<class JacobianOperator , class Traits >
void Dune::ACFem::DifferentiableBlockConstraintsOperatorInterface< JacobianOperator, Traits >::jacobian ( const DiscreteFunctionType &  u,
JacobianOperatorType &  jOp 
) const
inline

The Jacobian of the operator.

As the operator acts as identity minus affine offset, the Jacobian acts as identity. The methods does not alter any lines of jOp except for the "active" DoFs. The method handles slave-DoFs correctly in parallel runs.

References Dune::ACFem::asImp().

◆ operator()()

void Dune::ACFem::BlockConstraintsOperatorInterface< JacobianOperator::RangeFunctionType , Traits >::operator() ( const DiscreteFunctionType &  arg,
DiscreteFunctionType &  w 
) const
inlineinherited

Apply the operator to the given argument.

This operates as as an affine linear operator which computes

\[ \Gamma(x) = x - g \]

where g defines the affine offet. TZhe operator acts only on the given subset of "active" DoFs (e.g. the boundary DoFs) and leaves all other values of w alone.


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)