Rodin::Assembly namespace

Module for performing the assembly of linear algebra objects from variational expressions.

Classes

template<class LinearAlgebraType, class Operand>
class AssemblyBase
Base class template for assembly operations.
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.
template<class VectorType, class FES>
class AssemblyBase<VectorType, Variational::LinearForm<FES, VectorType>>
Base class for linear form assembly operations.
template<class TrialFES, class TestFES>
class BilinearFormAssemblyInput
Input data for bilinear form assembly.
template<class ... Ts>
class BilinearFormTupleAssemblyInput
Input data for tuple of bilinear forms assembly.
template<class ... Ts>
class Default
Default assembly strategy selector.
template<>
class Default<Context::Local>
Default assembly strategy for local context without OpenMP.
template<>
class Default<Context::Local, Context::Local>
Default assembly strategy for mixed local contexts without OpenMP.
template<class Scalar, class Solution, class FES, class Value>
class DirichletBCAssemblyInput
Input data for Dirichlet boundary condition assembly.
template<class ... Ts>
class Generic
Generic problem assembly implementation.
template<class LinearSystem, class TrialFunction, class TestFunction>
class Generic<LinearSystem, Variational::Problem<LinearSystem, TrialFunction, TestFunction>>
Generic assembly implementation for complete variational problems.
template<class FES>
class LinearFormAssemblyInput
Input data for linear form assembly.
template<class ... Ts>
class LinearFormTupleAssemblyInput
Input data for tuple of linear forms assembly.
template<class Solution, class TrialFES, class TestFES>
class OpenMP<::Mat, Variational::BilinearForm<Solution, TrialFES, TestFES, ::Mat>>
OpenMP assembly for PETSc Mat (bilinear form)
template<class FES>
class OpenMP<::Vec, Variational::LinearForm<FES, ::Vec>>
OpenMP assembly for PETSc Vec (linear form)
template<class Solution, class TrialFES, class TestFES>
class OpenMP<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>>>
OpenMP assembly of the Math::SparseMatrix associated to a BilinearFormBase object.
template<class FES>
class OpenMP<Math::Vector<typename FormLanguage::Traits<FES>::ScalarType>, Variational::LinearForm<FES, Math::Vector<typename FormLanguage::Traits<FES>::ScalarType>>>
OpenMP assembly of the Math::Vector associated to a LinearForm object.
template<class Solution, class TrialFES, class TestFES>
class 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 OpenMPIteration<Geometry::Mesh<Context::Local>>
OpenMP-based parallel mesh iteration for multi-threaded assembly.
template<class ProblemBody, class TrialFunction, class TestFunction>
class ProblemAssemblyInput
Input data for complete problem assembly.
template<class LinearAlgebraType, class Operand>
class Sequential
Sequential (single-threaded) assembly implementation.
template<class Mesh>
class SequentialIteration
Sequential mesh iteration strategy.
template<>
class SequentialIteration<Geometry::Mesh<Context::Local>>
Sequential mesh iteration for single-threaded assembly.

Functions

template<class TrialFES, class TestFES>
BilinearFormAssemblyInput(const TrialFES&, const TestFES&, FormLanguage::List<Variational::LocalBilinearFormIntegratorBase<decltype(std::declval<typename FormLanguage::Traits<TrialFES>::ScalarType>()*std::declval<typename FormLanguage::Traits<TestFES>::ScalarType>())>, &, FormLanguage::List<Variational::GlobalBilinearFormIntegratorBase<decltype(std::declval<typename FormLanguage::Traits<TrialFES>::ScalarType>()*std::declval<typename FormLanguage::Traits<TestFES>::ScalarType>())>, &) -> BilinearFormAssemblyInput< TrialFES, TestFES >
Template argument deduction guide for BilinearFormAssemblyInput.
OpenMPIteration(const Geometry::Mesh<Context::Local>& mesh, const Geometry::Region&) -> OpenMPIteration< Geometry::Mesh< Context::Local > >
Template argument deduction guide for OpenMPIteration.
SequentialIteration(const Geometry::Mesh<Context::Local>& mesh, const Geometry::Region&) -> SequentialIteration< Geometry::Mesh< Context::Local > >
Template argument deduction guide for SequentialIteration.

Function documentation

template<class TrialFES, class TestFES>
Rodin::Assembly::BilinearFormAssemblyInput(const TrialFES&, const TestFES&, FormLanguage::List<Variational::LocalBilinearFormIntegratorBase<decltype(std::declval<typename FormLanguage::Traits<TrialFES>::ScalarType>()*std::declval<typename FormLanguage::Traits<TestFES>::ScalarType>())>, &, FormLanguage::List<Variational::GlobalBilinearFormIntegratorBase<decltype(std::declval<typename FormLanguage::Traits<TrialFES>::ScalarType>()*std::declval<typename FormLanguage::Traits<TestFES>::ScalarType>())>, &) -> BilinearFormAssemblyInput< TrialFES, TestFES >

Template argument deduction guide for BilinearFormAssemblyInput.