Assembly Module module
Matrix and vector assembly infrastructure for finite element computations.
The Assembly module provides the core infrastructure for assembling finite element matrices and vectors from variational forms. It supports both sequential and parallel assembly strategies, with specializations for different operator types and finite element spaces.
Key Features
- Bilinear Form Assembly: Efficient assembly of stiffness matrices
- Linear Form Assembly: Assembly of load vectors and right-hand sides
- Parallel Assembly: Support for OpenMP-based parallel assembly
- Template Specialization: Optimized assembly for different operator types
- Mixed Formulations: Support for mixed finite element problems
Classes
-
template<class OperatorType, class Solution, class TrialFES, class TestFES>class Rodin::Assembly::AssemblyBase<OperatorType, Variational::BilinearForm<Solution, TrialFES, TestFES, OperatorType>>
- Base class for bilinear form assembly operations.
-
template<class VectorType, class FES>class Rodin::Assembly::AssemblyBase<VectorType, Variational::LinearForm<FES, VectorType>>
- Base class for linear form assembly operations.
-
template<>class Rodin::Assembly::Default<Context::Local>
- Default assembly strategy for local context without OpenMP.
-
template<>class Rodin::Assembly::Default<Context::Local, Context::Local>
- Default assembly strategy for mixed local contexts without OpenMP.
-
template<class LinearAlgebraType, class Operand>class Rodin::Assembly::AssemblyBase
- Base class template for assembly operations.
-
template<class LinearAlgebraType, class Operand>class Rodin::Assembly::Sequential
- Sequential (single-threaded) assembly implementation.
-
template<class Mesh>class Rodin::Assembly::SequentialIteration
- Sequential mesh iteration strategy.
-
template<class TrialFES, class TestFES>class Rodin::Assembly::BilinearFormAssemblyInput
- Input data for bilinear form assembly.
-
template<class FES>class Rodin::Assembly::LinearFormAssemblyInput
- Input data for linear form assembly.
-
template<class ... Ts>class Rodin::Assembly::BilinearFormTupleAssemblyInput
- Input data for tuple of bilinear forms assembly.
-
template<class Scalar, class Solution, class FES, class Value>class Rodin::Assembly::DirichletBCAssemblyInput
- Input data for Dirichlet boundary condition assembly.
-
template<class ... Ts>class Rodin::Assembly::Default
- Default assembly strategy selector.
-
template<class ... Ts>class Rodin::Assembly::Generic
- Generic problem assembly implementation.
-
template<class LinearSystem, class TrialFunction, class TestFunction>class Rodin::Assembly::Generic<LinearSystem, Variational::Problem<LinearSystem, TrialFunction, TestFunction>>
- Generic assembly implementation for complete variational problems.
-
template<class ... Ts>class Rodin::Assembly::LinearFormTupleAssemblyInput
- Input data for tuple of linear forms assembly.
-
template<class ProblemBody, class TrialFunction, class TestFunction>class Rodin::Assembly::ProblemAssemblyInput
- Input data for complete problem assembly.
-
template<>class Rodin::Assembly::OpenMPIteration<Geometry::Mesh<Context::Local>>
- OpenMP-based parallel mesh iteration for multi-threaded assembly.
-
template<class Solution, class TrialFES, class TestFES>class Rodin::Assembly::OpenMP<std::vector<Eigen::Triplet<typename FormLanguage::Dot<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>>, Variational::BilinearForm<Solution, TrialFES, TestFES, std::vector<Eigen::Triplet<typename FormLanguage::Dot<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>>>>
- OpenMP-based parallel assembly for bilinear forms.
-
template<>class Rodin::Assembly::SequentialIteration<Geometry::Mesh<Context::Local>>
- Sequential mesh iteration for single-threaded assembly.