![]() |
Dune-Functions 2.11
|
Loading...
Searching...
No Matches
discreteglobalbasisfunction.hh
Go to the documentation of this file.
43 using Coefficient = Dune::AutonomousValue<decltype(std::declval<Vector>()[std::declval<typename Basis::MultiIndex>()])>;
294 using Traits = Imp::GridFunctionTraits<Range(Domain), typename Base::EntitySet, DefaultDerivativeTraits, 16>;
299 using LocalBasisRange = typename Node::FiniteElement::Traits::LocalBasisType::Traits::RangeType;
302 using PerNodeEvaluationBuffer = typename TypeTree::TreeContainer<NodeData, typename Base::Tree>;
374 friend typename DiscreteGlobalBasisFunctionDerivative<DiscreteGlobalBasisFunction>::LocalFunction derivative(const LocalFunction& lf)
376 auto dlf = localFunction(DiscreteGlobalBasisFunctionDerivative<DiscreteGlobalBasisFunction>(lf.data_));
389 : Base(std::make_shared<Data>(Data{{basis.gridView()}, wrap_or_move(std::forward<B_T>(basis)), wrap_or_move(std::forward<V_T>(coefficients)), wrap_or_move(std::forward<NTRE_T>(nodeToRangeEntry))}))
393 DiscreteGlobalBasisFunction(std::shared_ptr<const Basis> basis, std::shared_ptr<const V> coefficients, std::shared_ptr<const typename Base::NodeToRangeEntry> nodeToRangeEntry)
404 HierarchicSearch search(this->data_->basis->gridView().grid(), this->data_->basis->gridView().indexSet());
497 : public ImplDoc::DiscreteGlobalBasisFunctionBase<typename DGBF::Basis, typename DGBF::Vector, typename DGBF::NodeToRangeEntry>
499 using Base = ImplDoc::DiscreteGlobalBasisFunctionBase<typename DGBF::Basis, typename DGBF::Vector, typename DGBF::NodeToRangeEntry>;
509 using Range = typename SignatureTraits<typename DiscreteGlobalBasisFunction::Traits::DerivativeInterface>::Range;
511 using Traits = Imp::GridFunctionTraits<Range(Domain), typename Base::EntitySet, DefaultDerivativeTraits, 16>;
516 using LocalBasisRange = typename Node::FiniteElement::Traits::LocalBasisType::Traits::JacobianType;
519 using PerNodeEvaluationBuffer = typename TypeTree::TreeContainer<NodeData, typename Base::Tree>;
630 friend typename Traits::LocalFunctionTraits::DerivativeInterface derivative(const LocalFunction&)
659 HierarchicSearch search(this->data_->basis->gridView().grid(), this->data_->basis->gridView().indexSet());
667 friend typename Traits::DerivativeInterface derivative(const DiscreteGlobalBasisFunctionDerivative& f)
void axpy(const Ta &a, const type &y)
auto makeDiscreteGlobalBasisFunction(B &&basis, V &&vector)
Generate a DiscreteGlobalBasisFunction.
Definition discreteglobalbasisfunction.hh:458
auto istlVectorBackend(Vector &v)
Return a vector backend wrapping non-const ISTL like containers.
Definition istlvectorbackend.hh:350
STL namespace.
auto flatVectorView(T &t)
Create flat vector view of passed mutable container.
Definition flatvectorview.hh:183
int size() const
typename AutonomousValueType< T >::type AutonomousValue
virtual void operator()()=0
#define DUNE_THROW(E,...)
void forEachLeafNode(Tree &&tree, LeafFunc &&leafFunc)
auto wrap_or_move(T &&t)
Default implementation for derivative traits.
Definition defaultderivativetraits.hh:41
Helper class to deduce the signature of a callable.
Definition signature.hh:60
A simple node to range map using the nested tree indices.
Definition hierarchicnodetorangemap.hh:34
Definition discreteglobalbasisfunction.hh:36
std::shared_ptr< const Data > data_
Definition discreteglobalbasisfunction.hh:225
const Vector & dofs() const
Return the coefficients of this discrete function by reference.
Definition discreteglobalbasisfunction.hh:207
B Basis
Definition discreteglobalbasisfunction.hh:38
typename Basis::LocalView::Tree Tree
Definition discreteglobalbasisfunction.hh:47
V Vector
Definition discreteglobalbasisfunction.hh:39
typename EntitySet::Element Element
Definition discreteglobalbasisfunction.hh:53
typename EntitySet::LocalCoordinate LocalDomain
Definition discreteglobalbasisfunction.hh:52
const NodeToRangeEntry & nodeToRangeEntry() const
Return the stored node-to-range map.
Definition discreteglobalbasisfunction.hh:213
NTRE NodeToRangeEntry
Definition discreteglobalbasisfunction.hh:48
DiscreteGlobalBasisFunctionBase(const std::shared_ptr< const Data > &data)
Definition discreteglobalbasisfunction.hh:192
typename Basis::GridView GridView
Definition discreteglobalbasisfunction.hh:45
const Basis & basis() const
Return a const reference to the stored basis.
Definition discreteglobalbasisfunction.hh:201
GridViewEntitySet< GridView, 0 > EntitySet
Definition discreteglobalbasisfunction.hh:46
const EntitySet & entitySet() const
Get associated set of entities the local-function can be bound to.
Definition discreteglobalbasisfunction.hh:219
typename EntitySet::GlobalCoordinate Domain
Definition discreteglobalbasisfunction.hh:50
Dune::AutonomousValue< decltype(std::declval< Vector >()[std::declval< typename Basis::MultiIndex >()])> Coefficient
Definition discreteglobalbasisfunction.hh:43
Definition discreteglobalbasisfunction.hh:61
EntitySet entitySet
Definition discreteglobalbasisfunction.hh:62
std::shared_ptr< const NodeToRangeEntry > nodeToRangeEntry
Definition discreteglobalbasisfunction.hh:65
std::shared_ptr< const Basis > basis
Definition discreteglobalbasisfunction.hh:63
std::shared_ptr< const Vector > coefficients
Definition discreteglobalbasisfunction.hh:64
Definition discreteglobalbasisfunction.hh:70
LocalFunctionBase & operator=(const LocalFunctionBase &other)
Copy-assignment of the local-function.
Definition discreteglobalbasisfunction.hh:108
bool bound() const
Check if LocalFunction is already bound to an element.
Definition discreteglobalbasisfunction.hh:157
void bind(const Element &element)
Bind LocalFunction to grid element.
Definition discreteglobalbasisfunction.hh:124
typename EntitySet::Element Element
Definition discreteglobalbasisfunction.hh:76
const Element & localContext() const
Return the element the local-function is bound to.
Definition discreteglobalbasisfunction.hh:163
LocalFunctionBase(const LocalFunctionBase &other)
Copy-construct the local-function.
Definition discreteglobalbasisfunction.hh:92
std::vector< Coefficient > localDoFs_
Definition discreteglobalbasisfunction.hh:188
void assignWith(To &to, const From &from) const
Definition discreteglobalbasisfunction.hh:171
std::shared_ptr< const Data > data_
Definition discreteglobalbasisfunction.hh:186
decltype(auto) nodeToRangeEntry(const Node &node, const TreePath &treePath, Range &y) const
Definition discreteglobalbasisfunction.hh:181
LocalView localView_
Definition discreteglobalbasisfunction.hh:187
void unbind()
Unbind the local-function.
Definition discreteglobalbasisfunction.hh:151
LocalDomain Domain
Definition discreteglobalbasisfunction.hh:75
LocalFunctionBase(const std::shared_ptr< const Data > &data)
Definition discreteglobalbasisfunction.hh:79
Derivative of a DiscreteGlobalBasisFunction
Definition discreteglobalbasisfunction.hh:498
typename Base::Basis Basis
Definition discreteglobalbasisfunction.hh:505
friend Traits::DerivativeInterface derivative(const DiscreteGlobalBasisFunctionDerivative &f)
Definition discreteglobalbasisfunction.hh:667
Range operator()(const Domain &x) const
Evaluate the discrete grid-function derivative in global coordinates.
Definition discreteglobalbasisfunction.hh:657
typename SignatureTraits< typename DiscreteGlobalBasisFunction::Traits::DerivativeInterface >::Range Range
Definition discreteglobalbasisfunction.hh:509
friend LocalFunction localFunction(const DiscreteGlobalBasisFunctionDerivative &f)
Construct local function from a DiscreteGlobalBasisFunctionDerivative
Definition discreteglobalbasisfunction.hh:673
DiscreteGlobalBasisFunctionDerivative(const std::shared_ptr< const Data > &data)
create object from DiscreateGlobalBasisFunction data
Definition discreteglobalbasisfunction.hh:646
DGBF DiscreteGlobalBasisFunction
Definition discreteglobalbasisfunction.hh:503
typename Base::Vector Vector
Definition discreteglobalbasisfunction.hh:506
Imp::GridFunctionTraits< Range(Domain), typename Base::EntitySet, DefaultDerivativeTraits, 16 > Traits
Definition discreteglobalbasisfunction.hh:511
typename Base::Domain Domain
Definition discreteglobalbasisfunction.hh:508
A grid function induced by a global basis and a coefficient vector.
Definition discreteglobalbasisfunction.hh:283
friend DiscreteGlobalBasisFunctionDerivative< DiscreteGlobalBasisFunction > derivative(const DiscreteGlobalBasisFunction &f)
Derivative of the DiscreteGlobalBasisFunction
Definition discreteglobalbasisfunction.hh:413
DiscreteGlobalBasisFunction(B_T &&basis, V_T &&coefficients, NTRE_T &&nodeToRangeEntry)
Create a grid-function, by wrapping the arguments in std::shared_ptr.
Definition discreteglobalbasisfunction.hh:388
DiscreteGlobalBasisFunction(std::shared_ptr< const Basis > basis, std::shared_ptr< const V > coefficients, std::shared_ptr< const typename Base::NodeToRangeEntry > nodeToRangeEntry)
Create a grid-function, by moving the arguments in std::shared_ptr.
Definition discreteglobalbasisfunction.hh:393
friend LocalFunction localFunction(const DiscreteGlobalBasisFunction &t)
Construct local function from a DiscreteGlobalBasisFunction.
Definition discreteglobalbasisfunction.hh:426
typename Base::Basis Basis
Definition discreteglobalbasisfunction.hh:288
Imp::GridFunctionTraits< Range(Domain), typename Base::EntitySet, DefaultDerivativeTraits, 16 > Traits
Definition discreteglobalbasisfunction.hh:294
R Range
Definition discreteglobalbasisfunction.hh:292
typename Base::Vector Vector
Definition discreteglobalbasisfunction.hh:289
typename Base::Domain Domain
Definition discreteglobalbasisfunction.hh:291
Definition discreteglobalbasisfunction.hh:307
GlobalFunction::Range Range
Definition discreteglobalbasisfunction.hh:316
typename LocalBase::Domain Domain
Definition discreteglobalbasisfunction.hh:315
LocalFunction(const DiscreteGlobalBasisFunction &globalFunction)
Create a local-function from the associated grid-function.
Definition discreteglobalbasisfunction.hh:320
friend DiscreteGlobalBasisFunctionDerivative< DiscreteGlobalBasisFunction >::LocalFunction derivative(const LocalFunction &lf)
Local function of the derivative.
Definition discreteglobalbasisfunction.hh:374
Range operator()(const Domain &x) const
Evaluate this local-function in coordinates x in the bound element.
Definition discreteglobalbasisfunction.hh:336
typename LocalBase::Element Element
Definition discreteglobalbasisfunction.hh:317
local function evaluating the derivative in reference coordinates
Definition discreteglobalbasisfunction.hh:532
Range operator()(const Domain &x) const
Evaluate this local-function in coordinates x in the bound element.
Definition discreteglobalbasisfunction.hh:583
typename LocalBase::Domain Domain
Definition discreteglobalbasisfunction.hh:539
typename LocalBase::Element Element
Definition discreteglobalbasisfunction.hh:541
friend Traits::LocalFunctionTraits::DerivativeInterface derivative(const LocalFunction &)
Not implemented.
Definition discreteglobalbasisfunction.hh:630
GlobalFunction::Range Range
Definition discreteglobalbasisfunction.hh:540
void unbind()
Unbind the local-function.
Definition discreteglobalbasisfunction.hh:564
LocalFunction(const GlobalFunction &globalFunction)
Create a local function from the associated grid function.
Definition discreteglobalbasisfunction.hh:544
void bind(const Element &element)
Bind LocalFunction to grid element.
Definition discreteglobalbasisfunction.hh:557
Definition gridfunction.hh:36
GridView::template Codim< codim >::Entity Element
Type of Elements contained in this EntitySet.
Definition gridviewentityset.hh:36
Element::Geometry::LocalCoordinate LocalCoordinate
Type of local coordinates with respect to the Element.
Definition gridviewentityset.hh:39
Element::Geometry::GlobalCoordinate GlobalCoordinate
Definition gridviewentityset.hh:40
T reserve(T... args)
T resize(T... args)
T transform(T... args)
