The basic container that stores a base vector and a corresponding basis. More...
#include <LinearForm.hpp>
Inherits VectorFacade< double, Traits::template Vector< GB >::template Impl >, and Observer< event::adapt >.
Public Types | |
using | GlobalBasis = GB |
The type of the functionspace basis associated to this linearform. | |
using | CoefficientType = T |
The type of the elements of the DOFVector. | |
using | ElementVector = FlatVector< CoefficientType > |
The type of the vector filled on an element with local contributions. | |
Public Types inherited from VectorFacade< double, Traits::template Vector< GB >::template Impl > | |
using | size_type = typename Impl::size_type |
using | value_type = typename Impl::value_type |
using | HasLocalSize = decltype(std::declval< V >().localSize()) |
using | HasGlobalSize = decltype(std::declval< V >().globalSize()) |
Public Member Functions | |
LinearForm (std::shared_ptr< GB > const &basis) | |
Constructor. Stores the shared_ptr of the basis and creates a new DataTransfer. | |
template<class GB_ , REQUIRES(Concepts::Similar< GB_, GB >) > | |
LinearForm (GB_ &&basis) | |
Wraps the passed global basis into a (non-destroying) shared_ptr. | |
GlobalBasis const & | basis () const |
template<class LocalView , REQUIRES(Concepts::LocalView< LocalView >) > | |
void | assemble (LocalView const &localView) |
Assemble the vector operators on the bound element. | |
void | assemble () |
Assemble all vector operators added by addOperator(). | |
auto & | assembler () |
void | updateImpl (event::adapt e) override |
Update all operators on the updated gridView. | |
template<class ContextTag , class Expr , class TreePath > | |
void | addOperator (ContextTag contextTag, Expr const &expr, TreePath path) |
template<class ContextTag , class Operator , class TreePath > | |
void | addOperator (ContextTag contextTag, Operator const &op, TreePath path) |
Associate a local operator with this LinearForm. More... | |
template<class Operator , class TreePath = RootTreePath> | |
void | addOperator (Operator const &op, TreePath path={}) |
template<class Operator , class TreePath = RootTreePath> | |
void | addIntersectionOperator (Operator const &op, TreePath path={}) |
Public Member Functions inherited from VectorFacade< double, Traits::template Vector< GB >::template Impl > | |
VectorFacade (GlobalBasis const &basis) | |
Impl const & | impl () const |
Return the underlying linear algebra backend. | |
Impl & | impl () |
std::size_t | localSize () const |
Return the number of entries in the local part of the vector. | |
std::size_t | globalSize () const |
Return the number of entries in the global vector. | |
void | resize (Basis const &basis) |
Resize the vector to the size of the basis. | |
void | resizeZero (Basis const &basis) |
Resize the vector to the size of the basis and set to zero. | |
void | init (Basis const &basis, bool clear) |
void | finish () |
Finish the insertion of values, see init() | |
void | insert (Index const &idx, typename Impl::value_type const &value, Assign assign={}) |
Insert a single value into the matrix (add or overwrite to existing value) More... | |
void | set (Index const &idx, typename Impl::value_type const &value) |
See insert for assignment operation Assigner::assign. | |
void | add (Index const &idx, typename Impl::value_type const &value) |
See insert for assignment operation Assigner::plus_assign. | |
Impl::value_type | get (Index const &idx) const |
Return the value of the vector at the local index idx. | |
void | gather (LocalView const &localView, Node const &node, Buffer &buffer) const |
Extract values from the vector referring to the given local indices and store it into a buffer. More... | |
void | gather (LocalView const &localView, Buffer &buffer) const |
void | gather (std::vector< Index > const &indices, Buffer &buffer) |
Call gather the values associated to the indices into the buffer. | |
void | scatter (LocalView const &localView, Node const &node, NodeVector const &localVector, MaskRange const &mask, Assign assign) |
Insert a block of values into the vector (add or overwrite to existing values) More... | |
void | scatter (LocalView const &localView, Node const &node, NodeVector const &localVector, Assign assign) |
Call scatter with MaskRange set to FakeContainer. | |
void | scatter (LocalView const &localView, LocalVector const &localVector, Assign assign) |
Call scatter with Node given by the tree of the localView . | |
void | scatter (std::vector< Index > const &indices, Buffer const &values) |
Call scatter the values associated to the indices into the vector. | |
void | forEach (LocalInd const &localInd, Func &&func) |
Apply func to each value at given indices localInd . More... | |
void | forEach (LocalInd const &localInd, Func &&func) const |
Apply func to each value at given indices localInd . More... | |
The basic container that stores a base vector and a corresponding basis.
A vector storing all the assembled Operators indexed with DOF indices. The vector data is associated to a global basis.
GB | Basis of the vector |
T | Coefficient type to store in the vector |
Traits | Collection of parameter for the linear-algebra backend |
void addOperator | ( | ContextTag | contextTag, |
Operator const & | op, | ||
TreePath | path | ||
) |
Associate a local operator with this LinearForm.
Stores an operator in a list that gets assembled during a call to assemble(). The operator may be assigned to a specific context, i.e. either an element operator, an intersection operator, or a boundary operator. The path
tree paths specify the sub-basis for test functions the operator is applied to.
ContextTag | One of tag::element_operator, tag::intersection_operator or BoundarySubset indicating where to assemble this operator. |
Operator | An (pre-)operator that can be bound to a gridView, or a valid GridOperator. |
path | A tree-path for the Basis |
[[expects: path is valid tree-path in Basis]]