Loading...
Searching...
No Matches
operator.hpp File Reference
#include "linalg.hpp"
#include "vector.hpp"

Go to the source code of this file.

Classes

class  terra::linalg::detail::DummyOperator< SrcVectorT, DstVectorT >
 Dummy operator for testing concepts. Implements apply_impl as a no-op. More...
 
class  terra::linalg::detail::DummyConcreteOperator
 Dummy concrete operator for concept checks. Uses DummyVector as vector types. More...
 
class  terra::linalg::detail::DummyConcreteBlock2x2Operator
 Dummy block 2x2 operator for concept checks. Contains four DummyConcreteOperator blocks. More...
 

Namespaces

namespace  terra
 
namespace  terra::linalg
 Contains linear algebra utilities and functions for the Terra project.
 
namespace  terra::linalg::detail
 

Concepts

concept  terra::linalg::OperatorLike
 Concept for types that behave like linear operators.
 
concept  terra::linalg::GCACapable
 Concept for types that can be used as Galerkin coarse-grid operators in a multigrid hierarchy. See galerkin_coarsening_linear.hpp for more information on GCA.
 
concept  terra::linalg::Block2x2OperatorLike
 Concept for types that behave like block 2x2 operators. Extends OperatorLike and requires block types and accessors.
 

Typedefs

template<OperatorLike Operator>
using terra::linalg::SrcOf = Operator::SrcVectorType
 Alias for the source vector type of an operator.
 
template<OperatorLike Operator>
using terra::linalg::DstOf = Operator::DstVectorType
 Alias for the destination vector type of an operator.
 

Enumerations

enum class  terra::linalg::OperatorApplyMode { terra::linalg::Replace , terra::linalg::Add }
 Modes for applying an operator to a vector. More...
 
enum class  terra::linalg::OperatorCommunicationMode { terra::linalg::SkipCommunication , terra::linalg::CommunicateAdditively }
 Modes for communication during operator application. More...
 
enum class  terra::linalg::OperatorStoredMatrixMode { terra::linalg::Off , terra::linalg::Full , terra::linalg::Selective }
 Modes for applying stored matrices. More...
 

Functions

template<OperatorLike Operator>
void terra::linalg::apply (Operator &A, const SrcOf< Operator > &src, DstOf< Operator > &dst)
 Apply an operator to a source vector and write to a destination vector.