DUNE-ACFEM (unstable)
A (homogeneous) Robin-boundary model. More...
#include <dune/acfem/models/modules/robinmodel.hh>
Public Member Functions | |
template<class Intersection > | |
auto | classifyBoundary (const Intersection &intersection) |
auto | linearizedRobinFlux (const DomainType &unitOuterNormal, const RangeType &value) const |
FunctionSpaceTypes | |
Forward some basic type from the supplied function-spaces to the model class. Note that FunctionSpace is defined as a shortcut for RangeFunctionSpace in order to simplify the common case DomainFunctionSpace == RangeFunctionSpace. | |
using | HessianRangeSelector = typename std::conditional< std::is_convertible< typename FunctionSpace::RangeType, typename FunctionSpace::HessianRangeType >::value, Fem::ExplicitFieldVector< typename FunctionSpace::HessianRangeType::value_type, FunctionSpace::dimRange >, typename FunctionSpace::HessianRangeType >::type |
The type returned by classifyBoundary(). | |
using | RangeFunctionSpaceType = FunctionSpace |
The type returned by classifyBoundary(). | |
using | DomainFunctionSpaceType = FunctionSpace |
The type returned by classifyBoundary(). | |
using | FunctionSpaceType = RangeFunctionSpaceType |
The type returned by classifyBoundary(). | |
using | DomainType = typename FunctionSpaceType::DomainType |
The type returned by classifyBoundary(). | |
using | RangeType = typename FunctionSpaceType::RangeType |
The type returned by classifyBoundary(). | |
using | JacobianRangeType = typename FunctionSpaceType::JacobianRangeType |
The type returned by classifyBoundary(). | |
using | HessianRangeType = HessianRangeSelector< FunctionSpaceType > |
The type returned by classifyBoundary(). | |
using | DomainFieldType = typename FunctionSpaceType::DomainFieldType |
The type returned by classifyBoundary(). | |
using | RangeFieldType = typename FunctionSpaceType::RangeFieldType |
The type returned by classifyBoundary(). | |
using | DomainRangeType = typename DomainFunctionSpaceType::RangeType |
The type returned by classifyBoundary(). | |
using | DomainDomainType = typename DomainFunctionSpaceType::DomainType |
The type returned by classifyBoundary(). | |
using | DomainJacobianRangeType = typename DomainFunctionSpaceType::JacobianRangeType |
The type returned by classifyBoundary(). | |
using | DomainHessianRangeType = HessianRangeSelector< DomainFunctionSpaceType > |
The type returned by classifyBoundary(). | |
using | DomainDomainFieldType = typename DomainFunctionSpaceType::DomainFieldType |
The type returned by classifyBoundary(). | |
using | DomainRangeFieldType = typename DomainFunctionSpaceType::RangeFieldType |
The type returned by classifyBoundary(). | |
using | RangeRangeType = typename RangeFunctionSpaceType::RangeType |
The type returned by classifyBoundary(). | |
using | RangeDomainType = typename RangeFunctionSpaceType::DomainType |
The type returned by classifyBoundary(). | |
using | RangeJacobianRangeType = typename RangeFunctionSpaceType::JacobianRangeType |
The type returned by classifyBoundary(). | |
using | RangeHessianRangeType = HessianRangeSelector< RangeFunctionSpaceType > |
The type returned by classifyBoundary(). | |
using | RangeDomainFieldType = typename RangeFunctionSpaceType::DomainFieldType |
The type returned by classifyBoundary(). | |
using | RangeRangeFieldType = typename RangeFunctionSpaceType::RangeFieldType |
The type returned by classifyBoundary(). | |
using | BoundaryConditionsType = std::pair< bool, std::bitset< dimRange > > |
The type returned by classifyBoundary(). | |
void | bind (const Entity &entity) |
Bind to the given entity. More... | |
void | unbind () |
Unbind from the previously bound entity. More... | |
static constexpr int | dimDomain |
The type returned by classifyBoundary(). | |
static constexpr int | dimRange |
The type returned by classifyBoundary(). | |
static constexpr int | domainDimDomain |
The type returned by classifyBoundary(). | |
static constexpr int | domainDimRange |
static constexpr int | rangeDimDomain |
The type returned by classifyBoundary(). | |
static constexpr int | rangeDimRange |
Detailed Description
class Dune::ACFem::PDEModel::RobinBoundaryModel< FunctionSpace, Indicator >
A (homogeneous) Robin-boundary model.
(linear) Robin boundary-conditions are in general boundary conditions of the following form
\[ (A(x)\nabla u(x))\cdot\nu(x) = c(x)\,(u^{\text{ext}}(x) - u(x))\text{ on }\Gamma_R \]
where \(A(x)\) is the coefficient matrix of the principle part of an associated PDE of 2nd order, \(c(x)\) is a given wnon-negative cofficient function and \(u^{\text{ext}}(x)\) is some given function.
This models the scenario that the flux of the qunatity u over the boundary is proportional to the difference to some prescribed external temperature distribution with transition coefficient \(c(x)\).
This particular model implements the following homogeneous special case:
\[ (A(x)\nabla u(x))\cdot\nu(x) = - u(x))\text{ on }\Gamma_R \]
The general non-homogeneous case with arbitrary coefficient function can be obtained by subtracting the inhomogeneity from the model and multiplying the resulting non-homogeneous Robin-model with transition coefficent 1 by the desired transition coefficent, which may be a constant, parameter of function.
- Parameters
-
[in] Indicator The boundary indicator function which decides on which part of the boundary the Robin boundary conditions is imposed.
- Note
- Note also that the inhomogeneity uExt is internally incorporated into the Neumann boundary data.
Member Function Documentation
◆ bind()
|
inlineinherited |
Bind to the given entity.
- Parameters
-
[in] entity The entity to bind to.
- Warning
- Calling any other method without first binding the model results in undefined behaviour.
- Models needing this method need to reimplement it. This is just here to obey the "bindable" interface of Dune::Fem.
◆ unbind()
|
inlineinherited |
Unbind from the previously bound entity.
- Warning
- Calling this method on an unbound model may cause undefined behaviour.
- Models needing this method need to reimplement it. This is just here to obey the "bindable" interface of Dune::Fem.
Member Data Documentation
◆ domainDimRange
|
staticconstexprinherited |
◆ rangeDimRange
|
staticconstexprinherited |
The documentation for this class was generated from the following file:
- dune/acfem/models/modules/robinmodel.hh