DUNE-ACFEM (unstable)
Define a model for the "Navier-Stokes" non-lineariry. More...
#include <dune/acfem/models/modules/fluidselftransportmodel.hh>
Collaboration diagram for Dune::ACFem::PDEModel::FluidSelfTransportModel< FunctionSpace >:Public Member Functions | |
| template<class Intersection > | |
| auto | classifyBoundary (const Intersection &intersection) |
| Bind to the given intersection and classify the components w.r.t. More... | |
| JacobianRangeType | flux (const RangeType &value) const |
| Evaluate \(A(x, u)\nabla u(x)\) in local coordinates. More... | |
| template<class Point > | |
| JacobianRangeType | linearizedFlux (const RangeType &uBar, const RangeType &value) const |
| Evaluate the linearized flux in local coordinates. More... | |
| RangeType | fluxDivergence (const RangeType &value, const JacobianRangeType &jacobian) 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... | |
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::FluidSelfTransportModel< FunctionSpace >
Define a model for the "Navier-Stokes" non-lineariry.
An alternate formulation of the the Navier-Stokes non-linearity obtained by integration by parts, at the cost of introducting a boundary integral for non-Dirichlet boundaries
In formulas: this fragment implements the right-hand-side of the following equation (where the equality only holds for \(\nabla\cdot U = 0\)):
\[ \int_\Omega U_i\,\partial_i U_j\,\phi_j = - \int_\Omega U_i\,U_j\,\partial_i\phi_j + \int_{\partial\Omega} U\cdot\nu\,U\cdot\phi \]
Of course, the formula uses sum-convention. The left-hand-side is implemented by IncompressibleSelfTransportModel.
- Parameters
-
GridPart The grid-part we live on.
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/fluidselftransportmodel.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Nov 1, 23:35, 2025)