DUNE-ACFEM (2.5.1)

Dune::ACFem::P_LaplacianOperatorParts< FunctionSpace > Class Template Reference

The p-Laplacian-model. More...

#include <dune/acfem/models/modules/plaplacianmodel.hh>

Public Types

enum  StructureFlags
 
enum  ConstituentFlags
 
typedef Expression ExpressionType
 The type of the underlying expression.
 

Public Member Functions

template<class Entity , class Point >
void flux (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, JacobianRangeType &flux) const
 Evaluate \(A(x, u)\nabla u(x)\) in local coordinates. More...
 
template<class Entity , class Point >
void linearizedFlux (const RangeType &uBar, const JacobianRangeType &DuBar, const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, JacobianRangeType &flux) const
 Evaluate the linearized flux in local coordinates. More...
 
template<class Entity , class Point >
void fluxDivergence (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, const HessianRangeType &hessian, RangeType &result) const
 Compute the point-wise value of the flux-part of the operator, meaning the part of the differential operator which is multiplied by the derivative of the test function. More...
 
void setEntity (const Entity &entity) const
 
bool setIntersection (const Intersection &intersection) const
 
void source (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, RangeType &result) const
 
void linearizedSource (const RangeType &uBar, const JacobianRangeType &DuBar, const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, RangeType &result) const
 
void robinFlux (const Intersection &intersection, const Point &x, const DomainType &unitOuterNormal, const RangeType &value, RangeType &result) const
 
void linearizedRobinFlux (const RangeType &uBar, const Intersection &intersection, const Point &x, const DomainType &unitOuterNormal, const RangeType &value, RangeType &result) const
 
const ExpressionTypeexpression () const
 Return a const reference to the underlying expression.
 
ExpressionTypeexpression ()
 Return a mutable reference to the underlying expression.
 
ExpressionType operator* () const
 Return a copy from of the underlying expression.
 

Detailed Description

template<class FunctionSpace>
class Dune::ACFem::P_LaplacianOperatorParts< FunctionSpace >

The p-Laplacian-model.

The flux-terms has the form

\[ \int_\Omega |\nabla U|^{p-2}\,\nabla U : \nabla \phi\quad\forall \phi \]

where \(U\) is the unknown und \(ß\phi\) denotes the test functions. This is the formal first variation of the functional

\[ U\mapsto \int_\Omega |\nabla U|^p = \int_\Omega (\nabla U : \nabla U)^{p/2}. \]

FIXME: use rather the following for the vector valud case?

\[ U\mapsto \int_\Omega \sum_{i=1}^r (\nabla U_i\cdot\nabla U_i)^{p/2}. \]

The second form yields a component-wise uncoupled p-Laplacian, the first yields a coupled version. We implement here the first, but this may not be what you want.

Bug:
This is totally untested. Cross check before using and then remove the comment.

Member Enumeration Documentation

◆ ConstituentFlags

◆ StructureFlags

Member Function Documentation

◆ linearizedRobinFlux()

void Dune::ACFem::DefaultOperatorParts< Expression >::linearizedRobinFlux ( const RangeType &  uBar,
const Intersection &  intersection,
const Point &  x,
const DomainType &  unitOuterNormal,
const RangeType &  value,
RangeType &  result 
) const
inlineinherited

◆ linearizedSource()

void Dune::ACFem::DefaultOperatorParts< Expression >::linearizedSource ( const RangeType &  uBar,
const JacobianRangeType &  DuBar,
const Entity &  entity,
const Point &  x,
const RangeType &  value,
const JacobianRangeType &  jacobian,
RangeType &  result 
) const
inlineinherited

◆ robinFlux()

void Dune::ACFem::DefaultOperatorParts< Expression >::robinFlux ( const Intersection &  intersection,
const Point &  x,
const DomainType &  unitOuterNormal,
const RangeType &  value,
RangeType &  result 
) const
inlineinherited

◆ setEntity()

void Dune::ACFem::DefaultOperatorParts< Expression >::setEntity ( const Entity &  entity) const
inlineinherited

◆ setIntersection()

bool Dune::ACFem::DefaultOperatorParts< Expression >::setIntersection ( const Intersection &  intersection) const
inlineinherited

◆ source()

void Dune::ACFem::DefaultOperatorParts< Expression >::source ( const Entity &  entity,
const Point &  x,
const RangeType &  value,
const JacobianRangeType &  jacobian,
RangeType &  result 
) const
inlineinherited


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.80.0 (May 3, 22:32, 2024)