AssemblyBase

Base class template for assembly operations.

template <
  class LinearAlgebraType,
  class Operand>
class AssemblyBase;
Template parameters
LinearAlgebraType Target linear algebra type (e.g., sparse matrix, vector)
Operand Variational form type (e.g., BilinearForm, LinearForm)

Provides the interface for assembling variational forms into discrete linear algebra objects (matrices and vectors). Different specializations handle bilinear forms, linear forms, boundary conditions, and problems.

SpecializationDescription
IndexMap<Scalar>, Variational::DirichletBC<…>
Full specialization
template <
  class Scalar,
  class Solution,
  class FES,
  class ValueDerived>
class AssemblyBase<
  IndexMap< Scalar >,
  Variational::DirichletBC< Variational::TrialFunction< Solution, FES >, Variational::FunctionBase< ValueDerived > >>;
Base class for value Dirichlet boundary condition assembly.
IndexMap<…>, Variational::DirichletBC<…>
Full specialization
template <
  class Scalar,
  class Sol1,
  class FES1,
  class Derived2,
  class FES2,
  Variational::ShapeFunctionSpaceType Sp>
class AssemblyBase<
  IndexMap< std::pair< IndexArray, Math::Vector< Scalar > > >,
  Variational::DirichletBC< Variational::TrialFunction< Sol1, FES1 >, Variational::ShapeFunctionBase< Derived2, FES2, Sp > >>;
AssemblyBase specialization for the identification Dirichlet BC u = A(v).
LinearSystem, Variational::Problem<LinearSystem, …>
Full specialization
template <
  class LinearSystem,
  class TrialFunction,
  class TestFunction>
class AssemblyBase<
  LinearSystem,
  Variational::Problem< LinearSystem, TrialFunction, TestFunction >>;
Base class for complete single-field problem assembly.
LinearSystem, Variational::Problem<LinearSystem, …>
Full specialization
template <
  class LinearSystem,
  class U1,
  class U2,
  class U3,
  class... Us>
class AssemblyBase<
  LinearSystem,
  Variational::Problem< LinearSystem, U1, U2, U3, Us... >>;
Base class for complete mixed problem assembly.
OperatorType, Form
Full specialization
template <
  class OperatorType,
  class Form>
requires FormLanguage::IsNamedForm<Form>::Value
class AssemblyBase<
  OperatorType,
  Form>;
Base class for the assembly of a named bilinear form.
OperatorType, Tuple<…>
Full specialization
template <
  class OperatorType,
  class... Solution,
  class... TrialFES,
  class... TestFES,
  class... BlockType>
class AssemblyBase<
  OperatorType,
  Tuple< Variational::BilinearForm< Solution, TrialFES, TestFES, BlockType >... >>;
Base class for assembling tuples of bilinear forms.
OperatorType, Variational::BilinearForm<Solution, …>
Full specialization
template <
  class OperatorType,
  class Solution,
  class TrialFES,
  class TestFES>
class AssemblyBase<
  OperatorType,
  Variational::BilinearForm< Solution, TrialFES, TestFES, OperatorType >>;
Base class for bilinear form assembly operations.
VectorType, Tuple<…>
Full specialization
template <
  class VectorType,
  class... FES,
  class... BlockType>
class AssemblyBase<
  VectorType,
  Tuple< Variational::LinearForm< FES, BlockType >... >>;
Base class for assembling tuples of linear forms.
VectorType, Variational::LinearForm<FES, VectorType>
Full specialization
template <
  class VectorType,
  class FES>
class AssemblyBase<
  VectorType,
  Variational::LinearForm< FES, VectorType >>;
Base class for linear form assembly operations.