Distance implementation details.
Namespaces | |
namespace | Box |
namespace | DofBackend |
namespace | DuneVectors |
namespace | FCDiamond |
namespace | HelmholtzOperator |
namespace | Intersections |
namespace | IstlSolvers |
namespace | LATraits |
namespace | LinearPDESolver |
namespace | LinearSolverParameters |
namespace | Multithreading |
namespace | Newton |
namespace | PDESolver |
namespace | PQ1Bubble |
namespace | Preconditioners |
namespace | RasterImageData |
namespace | Staggered |
namespace | Tpfa |
namespace | VTKReader |
Typedefs | |
template<class Imp , class P , class G , class S , class V > | |
using | TimeInfoInterfaceCVFEDetector = decltype(std::declval< Imp >().computeStorage(std::declval< P >(), std::declval< G >(), std::declval< S >(), std::declval< V >(), true)) |
template<class Imp > | |
using | SCVFIsOverlappingDetector = decltype(std::declval< Imp >().isOverlapping()) |
template<class T , class Default > | |
using | NonVoidOrDefault_t = std::conditional_t<!std::is_same_v< T, void >, T, Default > |
template<class TypeTag , class Impl , DiffMethod diffMethod, bool isImplicit> | |
using | LocalAssemblerChooser_t = typename LocalAssemblerChooser< typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >::template type< TypeTag, Impl, diffMethod, isImplicit > |
template<class GG > | |
using | GGPeriodicMapDetector = decltype(std::declval< GG >().periodicDofMap()) |
helper struct detecting if a gridGeometry object has a periodicDofMap() function More... | |
template<class P > | |
using | DetectPriVarsHaveState = decltype(std::declval< P >().state()) |
template<class Vars > | |
using | SolutionVectorType = typename Vars::SolutionVector |
template<class T > | |
using | SpecifiesBaseGridGeometry = typename T::BasicGridGeometry |
template<class T > | |
using | SpecifiesGeometryHelper = typename T::GeometryHelper |
template<class GV , class T > | |
using | BoxGeometryHelper_t = Dune::Std::detected_or_t< Dumux::BoxGeometryHelper< GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace >, SpecifiesGeometryHelper, T > |
template<class GV , class T > | |
using | FaceCenteredDiamondGeometryHelper_t = Dune::Std::detected_or_t< Dumux::DiamondGeometryHelper< GV, typename T::SubControlVolume, typename T::SubControlVolumeFace >, SpecifiesGeometryHelper, T > |
template<class GV , class T > | |
using | PQ1BubbleGeometryHelper_t = Dune::Std::detected_or_t< Dumux::PQ1BubbleGeometryHelper< GV, typename T::SubControlVolume, typename T::SubControlVolumeFace >, SpecifiesGeometryHelper, T > |
template<class Problem , class SubControlVolumeFace > | |
using | HasVelocityInSpatialParams = decltype(std::declval< Problem >().spatialParams().velocity(std::declval< SubControlVolumeFace >())) |
template<class GV , class T > | |
using | BoxFacetCouplingGeometryHelper_t = Dune::Std::detected_or_t< Dumux::BoxGeometryHelper< GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace >, SpecifiesGeometryHelper, T > |
template<class Assembler , class Index > | |
using | DetectPVSwitchMultiDomain = typename Assembler::template GridVariables< Index::value >::VolumeVariables::PrimaryVariableSwitch |
template<class Variables > | |
using | DetectPVSwitch = typename Variables::VolumeVariables::PrimaryVariableSwitch |
helper aliases to extract a primary variable switch from the VolumeVariables (if defined, yields int otherwise) More... | |
template<class Variables > | |
using | PrimaryVariableSwitch = Dune::Std::detected_or_t< int, DetectPVSwitch, Variables > |
template<class FluidMatrixInteraction > | |
using | AdsorptionModelDetector = decltype(std::declval< FluidMatrixInteraction >().adsorptionModel()) |
template<class GV , class T > | |
using | BoxDfmGeometryHelper_t = Dune::Std::detected_or_t< Dumux::BoxDfmGeometryHelper< GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace >, SpecifiesGeometryHelper, T > |
template<typename T , typename ... Ts> | |
using | RobinDerivDetector = decltype(std::declval< T >().addRobinFluxDerivatives(std::declval< Ts >()...)) |
template<typename T , typename ... Ts> | |
using | SaturationDetector = decltype(std::declval< T >().spatialParams().saturation(std::declval< Ts >()...)) |
Functions | |
template<class Imp , class P , class G , class S , class V > | |
constexpr bool | hasTimeInfoInterfaceCVFE () |
template<class Imp > | |
constexpr bool | hasScvfIsOverlapping () |
template<class GG > | |
constexpr bool | hasPeriodicDofMap () |
template<class P > | |
constexpr bool | priVarsHaveState () |
template<class Element , class GridGeometry , class CVFEElemSol > | |
auto | evalCVFEGradients (const Element &element, const typename Element::Geometry &geometry, const GridGeometry &gridGeometry, const CVFEElemSol &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false) |
Evaluates the gradient of a control-volume finite element solution to a given global position. More... | |
template<class ElementSolution > | |
bool | allStatesEqual (const ElementSolution &elemSol, std::true_type hasState) |
returns true if all states in an element solution are the same More... | |
template<class ElementSolution > | |
bool | allStatesEqual (const ElementSolution &elemSol, std::false_type hasState) |
overload if the solution is stateless More... | |
template<class Geometry , class ElementSolution > | |
auto | minDistVertexSol (const Geometry &geometry, const typename Geometry::GlobalCoordinate &globalPos, const ElementSolution &elemSol) |
return the solution at the closest dof More... | |
template<class Element , class GridGeometry , class CVFEElemSol > | |
CVFEElemSol::PrimaryVariables | evalCVFESolution (const Element &element, const typename Element::Geometry &geometry, const GridGeometry &gridGeometry, const CVFEElemSol &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false) |
Interpolates a given control-volume finite element solution at a given global position. Uses the finite element cache of the grid geometry. More... | |
template<class Matrix > | |
void | setupReducedMatrices (const Matrix &massMatrix, const Matrix &projMatrix, const std::vector< bool > &dofIsVoid, Matrix &reducedM, Matrix &reducedP, std::vector< std::size_t > &expansionMap) |
Reduces a mass matrix and projection matrix such that they are composed of only those dofs that actually take part in the projection. Simultaneously, a container with the index map into the complete target space is filled so that the entries after projection can be assigned to the corresponding dof in the overall target space. More... | |
template<bool doBidirectional, class FEBasisDomain , class FEBasisTarget , class GlueType > | |
auto | createProjectionMatrices (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, const GlueType &glue, bool treatDiagonalZeroes=true) |
Creates the matrices underlying l2-projections. More... | |
template<bool doBidirectional, class FEBasisDomain , class FEBasisTarget , class GlueType > | |
auto | makeProjectorPair (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, const GlueType &glue) |
Creates a projector class between two function space bases. More... | |
template<class ElemVolVars , class SubControlVolumeFace , class UpwindTermFunction , class Scalar > | |
Scalar | upwindSchemeMultiplier (const ElemVolVars &elemVolVars, const SubControlVolumeFace &scvf, const UpwindTermFunction &upwindTerm, Scalar flux, int phaseIdx) |
returns the upwind factor which is multiplied to the advective flux across the given scvf More... | |
template<class EntitySet , class ctype , int dimworld, typename std::enable_if_t<(EntitySet::Entity::Geometry::mydimension > 0), int > = 0> | |
void | closestEntity (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, std::size_t node, ctype &minSquaredDistance, std::size_t &eIdx) |
Compute the closest entity in an AABB tree (index and shortest squared distance) recursively. More... | |
template<class Geo1 , class Geo2 , class ctype , class GetFacetCornerIndices , class ComputeNormalFunction > | |
bool | computeSegmentIntersection (const Geo1 &geo1, const Geo2 &geo2, ctype baseEps, ctype &tfirst, ctype &tlast, const GetFacetCornerIndices &getFacetCornerIndices, const ComputeNormalFunction &computeNormal) |
Algorithm to find segment-like intersections of a polygon/polyhedron with a segment. The result is stored in the form of the local coordinates tfirst and tlast on the segment geo1. More... | |
template<class Function , class Range > | |
Range | evalFunctionForRange (const Function &f, const Range &range) |
template<class S , class V > | |
void | addDataSetToGnuplot (GnuplotInterface< S > &gnuplot, const V &x, const V &y, const std::string &curveName, const std::string &curveOptions, const std::string &xLabel, const std::string &yLabel) |
template<class LinearSolverTraits , class GridView > | |
Dune::SolverCategory::Category | solverCategory (const GridView &gridView) |
template<class K , int rows, int cols, class VectorRow , class VectorCol > | |
void | symmetrizeConstraintsImpl (Dune::FieldMatrix< K, rows, cols > &A, VectorRow &bRow, const VectorCol &bCol, const VectorCol &constrainedRows, bool isDiagonal) |
template<class MBlock , class VectorRow , class VectorCol > | |
void | symmetrizeConstraintsImpl (Dune::BCRSMatrix< MBlock > &A, VectorRow &bRow, const VectorCol &bCol, const VectorCol &constrainedRows, bool isDiagonal) |
template<class... MBlock, class VectorRow , class VectorCol > | |
void | symmetrizeConstraintsImpl (Dune::MultiTypeBlockMatrix< MBlock... > &A, VectorRow &bRow, const VectorCol &bCol, const VectorCol &constrainedRows, bool isDiagonal) |
template<class Problem , class SubControlVolumeFace > | |
static constexpr bool | hasVelocityInSpatialParams () |
template<class FluidMatrixInteraction > | |
static constexpr bool | hasAdsorptionModel () |
template<class FluidMatrixInteraction > | |
static constexpr bool | hasAdsorptionModel () |
template<class T , typename ... Args> | |
static constexpr bool | hasAddRobinFluxDerivatives () |
template<class T , typename ... Args> | |
static constexpr bool | hasSaturation () |
Variables | |
template<class Grid , int dofCodim> | |
static constexpr bool | canCommunicate |
using Dumux::Detail::AdsorptionModelDetector = typedef decltype(std::declval<FluidMatrixInteraction>().adsorptionModel()) |
using Dumux::Detail::BoxDfmGeometryHelper_t = typedef Dune::Std::detected_or_t< Dumux::BoxDfmGeometryHelper<GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace>, SpecifiesGeometryHelper, T > |
using Dumux::Detail::BoxFacetCouplingGeometryHelper_t = typedef Dune::Std::detected_or_t< Dumux::BoxGeometryHelper<GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace>, SpecifiesGeometryHelper, T > |
using Dumux::Detail::BoxGeometryHelper_t = typedef Dune::Std::detected_or_t< Dumux::BoxGeometryHelper<GV, GV::dimension, typename T::SubControlVolume, typename T::SubControlVolumeFace>, SpecifiesGeometryHelper, T > |
using Dumux::Detail::DetectPriVarsHaveState = typedef decltype(std::declval<P>().state()) |
using Dumux::Detail::DetectPVSwitch = typedef typename Variables::VolumeVariables::PrimaryVariableSwitch |
using Dumux::Detail::DetectPVSwitchMultiDomain = typedef typename Assembler::template GridVariables<Index::value>::VolumeVariables::PrimaryVariableSwitch |
using Dumux::Detail::FaceCenteredDiamondGeometryHelper_t = typedef Dune::Std::detected_or_t< Dumux::DiamondGeometryHelper<GV, typename T::SubControlVolume, typename T::SubControlVolumeFace>, SpecifiesGeometryHelper, T > |
using Dumux::Detail::GGPeriodicMapDetector = typedef decltype(std::declval<GG>().periodicDofMap()) |
using Dumux::Detail::HasVelocityInSpatialParams = typedef decltype(std::declval<Problem>().spatialParams().velocity(std::declval<SubControlVolumeFace>())) |
using Dumux::Detail::LocalAssemblerChooser_t = typedef typename LocalAssemblerChooser< typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod >::template type<TypeTag, Impl, diffMethod, isImplicit> |
using Dumux::Detail::NonVoidOrDefault_t = typedef std::conditional_t<!std::is_same_v<T, void>, T, Default> |
using Dumux::Detail::PQ1BubbleGeometryHelper_t = typedef Dune::Std::detected_or_t< Dumux::PQ1BubbleGeometryHelper<GV, typename T::SubControlVolume, typename T::SubControlVolumeFace>, SpecifiesGeometryHelper, T > |
using Dumux::Detail::PrimaryVariableSwitch = typedef Dune::Std::detected_or_t<int, DetectPVSwitch, Variables> |
using Dumux::Detail::RobinDerivDetector = typedef decltype(std::declval<T>().addRobinFluxDerivatives(std::declval<Ts>()...)) |
using Dumux::Detail::SaturationDetector = typedef decltype(std::declval<T>().spatialParams().saturation(std::declval<Ts>()...)) |
using Dumux::Detail::SCVFIsOverlappingDetector = typedef decltype( std::declval<Imp>().isOverlapping() ) |
using Dumux::Detail::SolutionVectorType = typedef typename Vars::SolutionVector |
using Dumux::Detail::SpecifiesBaseGridGeometry = typedef typename T::BasicGridGeometry |
using Dumux::Detail::SpecifiesGeometryHelper = typedef typename T::GeometryHelper |
using Dumux::Detail::TimeInfoInterfaceCVFEDetector = typedef decltype( std::declval<Imp>().computeStorage( std::declval<P>(), std::declval<G>(), std::declval<S>(), std::declval<V>(), true ) ) |
void Dumux::Detail::addDataSetToGnuplot | ( | GnuplotInterface< S > & | gnuplot, |
const V & | x, | ||
const V & | y, | ||
const std::string & | curveName, | ||
const std::string & | curveOptions, | ||
const std::string & | xLabel, | ||
const std::string & | yLabel | ||
) |
bool Dumux::Detail::allStatesEqual | ( | const ElementSolution & | elemSol, |
std::false_type | hasState | ||
) |
bool Dumux::Detail::allStatesEqual | ( | const ElementSolution & | elemSol, |
std::true_type | hasState | ||
) |
auto Dumux::Detail::createProjectionMatrices | ( | const FEBasisDomain & | feBasisDomain, |
const FEBasisTarget & | feBasisTarget, | ||
const GlueType & | glue, | ||
bool | treatDiagonalZeroes = true |
||
) |
doBidirectional | If false, the backward projection matrix is not assembled |
feBasisDomain | The basis to the domain finite element space |
feBasisTarget | The basis to the target finite element space |
glue | The glue object containing the intersections between the two grids |
treatDiagonalZeroes | If true, zero entries on the diagonal of the matrices that appear if the two domains occupy different geometric regions (and some dofs to not take part in the projection as a result) are substituted by ones. This substitution will lead to those dofs being mapped to zeroes in the target space. |
Range Dumux::Detail::evalFunctionForRange | ( | const Function & | f, |
const Range & | range | ||
) |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
inlineconstexpr |
|
staticconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
staticconstexpr |
auto Dumux::Detail::makeProjectorPair | ( | const FEBasisDomain & | feBasisDomain, |
const FEBasisTarget & | feBasisTarget, | ||
const GlueType & | glue | ||
) |
doBidirectional | If false, the backward projection matrix is not assembled |
auto Dumux::Detail::minDistVertexSol | ( | const Geometry & | geometry, |
const typename Geometry::GlobalCoordinate & | globalPos, | ||
const ElementSolution & | elemSol | ||
) |
|
inlineconstexpr |
void Dumux::Detail::setupReducedMatrices | ( | const Matrix & | massMatrix, |
const Matrix & | projMatrix, | ||
const std::vector< bool > & | dofIsVoid, | ||
Matrix & | reducedM, | ||
Matrix & | reducedP, | ||
std::vector< std::size_t > & | expansionMap | ||
) |
Dune::SolverCategory::Category Dumux::Detail::solverCategory | ( | const GridView & | gridView | ) |
void Dumux::Detail::symmetrizeConstraintsImpl | ( | Dune::BCRSMatrix< MBlock > & | A, |
VectorRow & | bRow, | ||
const VectorCol & | bCol, | ||
const VectorCol & | constrainedRows, | ||
bool | isDiagonal | ||
) |
void Dumux::Detail::symmetrizeConstraintsImpl | ( | Dune::FieldMatrix< K, rows, cols > & | A, |
VectorRow & | bRow, | ||
const VectorCol & | bCol, | ||
const VectorCol & | constrainedRows, | ||
bool | isDiagonal | ||
) |
void Dumux::Detail::symmetrizeConstraintsImpl | ( | Dune::MultiTypeBlockMatrix< MBlock... > & | A, |
VectorRow & | bRow, | ||
const VectorCol & | bCol, | ||
const VectorCol & | constrainedRows, | ||
bool | isDiagonal | ||
) |
Scalar Dumux::Detail::upwindSchemeMultiplier | ( | const ElemVolVars & | elemVolVars, |
const SubControlVolumeFace & | scvf, | ||
const UpwindTermFunction & | upwindTerm, | ||
Scalar | flux, | ||
int | phaseIdx | ||
) |
|
staticconstexpr |