template<class LinearAlgebraType, class Operand>
Rodin::Assembly::AssemblyBase class

Base class template for assembly operations.

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
AssemblyBase<OperatorType, BilinearForm<...>>Base interface for assembling one bilinear form into one operator.
AssemblyBase<OperatorType, Tuple<BilinearForm<...>...>>Base interface for assembling block/tuple bilinear forms.
AssemblyBase<VectorType, LinearForm<...>>Base interface for assembling one linear form into one vector.
AssemblyBase<VectorType, Tuple<LinearForm<...>...>>Base interface for assembling block/tuple linear forms.
AssemblyBase<IndexMap<Scalar>, DirichletBC<TrialFunction, FunctionBase>>Base interface for scalar Dirichlet elimination maps.
AssemblyBase<IndexMap<pair<IndexArray, Vector>>, DirichletBC<TrialFunction, ShapeFunctionBase>>Base interface for identification-style Dirichlet constraints.
AssemblyBase<LinearSystem, Problem<LinearSystem, TrialFunction, TestFunction>>Base interface for single-field problem assembly.
AssemblyBase<LinearSystem, Problem<LinearSystem, U1, U2, U3, Us...>>Base interface for mixed multi-field problem assembly.