Sequential

Sequential (single-threaded) assembly implementation.

template <
  class LinearAlgebraType,
  class Operand>
class Sequential;
Template parameters
LinearAlgebraType Target linear algebra type
Operand Variational form type to assemble

Implements assembly operations using sequential iteration over mesh elements. Provides deterministic, reproducible results suitable for debugging and verification purposes.

SpecializationDescription
::Mat, Form
Full specialization
template <
  class Form>
requires FormLanguage::IsNamedForm<Form>::Value
class Sequential<
  ::Mat,
  Form> final;
Sequential PETSc assembly using a named form's local kernel.
::Mat, Variational::BilinearForm<Solution, …>
Full specialization
template <
  class Solution,
  class TrialFES,
  class TestFES>
class Sequential<
  ::Mat,
  Variational::BilinearForm< Solution, TrialFES, TestFES, ::Mat >> final;
Sequential assembly of a PETSc matrix from a bilinear form.
::Vec, Variational::LinearForm<FES,::Vec>
Full specialization
template <
  class FES>
class Sequential<
  ::Vec,
  Variational::LinearForm< FES, ::Vec >> final;
Sequential assembly of a PETSc vector from a linear form.
IndexMap<Scalar>, Variational::DirichletBC<…>
Full specialization
template <
  class Scalar,
  class Solution,
  class FES,
  class ValueDerived>
class Sequential<
  IndexMap< Scalar >,
  Variational::DirichletBC< Variational::TrialFunction< Solution, FES >, Variational::FunctionBase< ValueDerived > >> final;
Sequential 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 Sequential<
  IndexMap< std::pair< IndexArray, Math::Vector< Scalar > > >,
  Variational::DirichletBC< Variational::TrialFunction< Sol1, FES1 >, Variational::ShapeFunctionBase< Derived2, FES2, Sp > >> final;
Sequential assembler for the identification Dirichlet BC u = A(v).
LinearSystem, Variational::Problem<LinearSystem, …>
Full specialization
template <
  class LinearSystem,
  class TrialFunction,
  class TestFunction>
class Sequential<
  LinearSystem,
  Variational::Problem< LinearSystem, TrialFunction, TestFunction >> final;
Sequential single-field problem assembly.
LinearSystem, Variational::Problem<LinearSystem, …>
Full specialization
template <
  class LinearSystem,
  class U1,
  class U2,
  class U3,
  class... Us>
class Sequential<
  LinearSystem,
  Variational::Problem< LinearSystem, U1, U2, U3, Us... >> final;
Sequential mixed problem assembly.
Math::Matrix<…>, Variational::BilinearForm<Solution, …>
Full specialization
template <
  class Solution,
  class TrialFES,
  class TestFES>
class Sequential<
  Math::Matrix< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type >,
  Variational::BilinearForm< Solution, TrialFES, TestFES, Math::Matrix< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type > >> final;
Sequential assembly of the Math::SparseMatrix associated to a BilinearFormBase object.
Math::SparseMatrix<Real>, Tuple<…>
Full specialization
template <
  class... Solution,
  class... TrialFES,
  class... TestFES>
class Sequential<
  Math::SparseMatrix< Real >,
  Tuple< Variational::BilinearForm< Solution, TrialFES, TestFES, Math::SparseMatrix< Real > >... >> final;
Sequential block bilinear form assembly into a sparse matrix.
Math::SparseMatrix<Scalar>, Form
Full specialization
template <
  class Scalar,
  class Form>
requires FormLanguage::IsNamedForm<Form>::Value
class Sequential<
  Math::SparseMatrix< Scalar >,
  Form> final;
Assembly of a named bilinear form into a sparse matrix over a single thread.
Math::SparseMatrix<…>, Variational::BilinearForm<Solution, …>
Full specialization
template <
  class Solution,
  class TrialFES,
  class TestFES>
class Sequential<
  Math::SparseMatrix< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type >,
  Variational::BilinearForm< Solution, TrialFES, TestFES, Math::SparseMatrix< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type > >> final;
Sequential assembly of the Math::SparseMatrix associated to a BilinearFormBase object.
Math::Vector<Real>, Tuple<…>
Full specialization
template <
  class... FES>
class Sequential<
  Math::Vector< Real >,
  Tuple< Variational::LinearForm< FES, Math::Vector< Real > >... >> final;
Sequential block linear form assembly into a vector.
Math::Vector<…>, Variational::LinearForm<FES, …>
Full specialization
template <
  class FES>
class Sequential<
  Math::Vector< typename FormLanguage::Traits< FES >::ScalarType >,
  Variational::LinearForm< FES, Math::Vector< typename FormLanguage::Traits< FES >::ScalarType > >> final;
Sequential assembly implementation for linear forms.
Rodin::PETSc::Math::LinearSystem, Rodin::Variational::Problem<…>
Full specialization
template <
  class U,
  class V>
class Sequential<
  Rodin::PETSc::Math::LinearSystem,
  Rodin::Variational::Problem< Rodin::PETSc::Math::LinearSystem, U, V >> final;
Sequential assembly of a single-variable PETSc problem.
Rodin::PETSc::Math::LinearSystem, Rodin::Variational::Problem<…>
Full specialization
template <
  class U1,
  class U2,
  class U3,
  class... Us>
class Sequential<
  Rodin::PETSc::Math::LinearSystem,
  Rodin::Variational::Problem< Rodin::PETSc::Math::LinearSystem, U1, U2, U3, Us... >> final;
Sequential assembly of a multi-variable PETSc problem.
std::vector<Math::SparseTriplet<Real>>, Tuple<…>
Full specialization
template <
  class... Solution,
  class... TrialFES,
  class... TestFES>
class Sequential<
  std::vector< Math::SparseTriplet< Real > >,
  Tuple< Variational::BilinearForm< Solution, TrialFES, TestFES, std::vector< Math::SparseTriplet< Real > > >... >> final;
Sequential block bilinear form assembly into Eigen triplets.
std::vector<…>, Variational::BilinearForm<Solution, …>
Full specialization
template <
  class Solution,
  class TrialFES,
  class TestFES>
class Sequential<
  std::vector< Math::SparseTriplet< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type > >,
  Variational::BilinearForm< Solution, TrialFES, TestFES, std::vector< Math::SparseTriplet< typename FormLanguage::Dot< typename FormLanguage::Traits< TrialFES >::ScalarType, typename FormLanguage::Traits< TestFES >::ScalarType >::Type > > >> final;
Sequential bilinear form assembly into Eigen triplets.