DUNE-ACFEM (2.5.1)

Dune::ACFem::MeanCurvatureOperatorParts< FunctionSpace, Parameter > Class Template Reference

Define a mean-curvature model for graphs and level-sets. More...

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

+ Collaboration diagram for Dune::ACFem::MeanCurvatureOperatorParts< FunctionSpace, Parameter >:

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 Parameter = TrivialParameter<typename FunctionSpace::RangeType>>
class Dune::ACFem::MeanCurvatureOperatorParts< FunctionSpace, Parameter >

Define a mean-curvature model for graphs and level-sets.

This model implements the bulk-term

\[ \int_\Omega \frac{\nabla u\cdot\nabla\phi}{\sqrt{\eta^2+|\nabla u|^2}} \]

The linearization at \(\bar u\) reads

\[ \int_\Omega \frac{\nabla u\cdot\nabla\phi}{\sqrt{\eta^2+|\nabla \bar u|^2}} - \frac{(\nabla \bar u\cdot\nabla u)\,(\nabla \bar u\cdot\nabla\phi)}{\sqrt{\eta^2+|\nabla \bar u|^2}^3} \]

The divergence of the flux term is

\[ -\nabla\cdot\frac{\nabla u}{\sqrt{\eta^2+|\nabla u|^2}} = -\frac{\Delta u}{\sqrt{\eta^2+|\nabla u|^2}} + \frac{(\nabla u)^T (\nabla^2 u)\nabla u}{\sqrt{\eta^2+|\nabla u|^2}^3} \]

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.111.3 (Nov 12, 23:30, 2024)