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.
| Specialization | Description |
|---|---|
IndexMap<Scalar>, Variational::DirichletBC<…>Full specializationtemplate < 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 specializationtemplate < 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 specializationtemplate < 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 specializationtemplate < 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, FormFull specializationtemplate < 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 specializationtemplate < 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 specializationtemplate < 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 specializationtemplate < 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 specializationtemplate < class VectorType, class FES> class AssemblyBase< VectorType, Variational::LinearForm< FES, VectorType >>; | Base class for linear form assembly operations. |