Template deduction guides module

Class template argument deduction (CTAD) of Rodin's classes.

Functions

template<class Solution, class TrialFES, class TestFES>
BilinearForm(const PETSc::Variational::TrialFunction<Solution, TrialFES>& u, const PETSc::Variational::TestFunction<TestFES>& v) -> BilinearForm< Solution, TrialFES, TestFES, ::Mat >
Deduction guide for PETSc-backed BilinearForm.
template<class FES>
GridFunction(const FES&) -> GridFunction< FES >
Deduction guide for PETSc::Variational::GridFunction.
template<class FES>
LinearForm(const PETSc::Variational::TestFunction<FES>&) -> LinearForm< FES, ::Vec >
Deduction guide for PETSc-backed LinearForm.
template<class Solution, class TrialFES, class TestFES>
Problem(PETSc::Variational::TrialFunction<Solution, TrialFES>&, PETSc::Variational::TestFunction<TestFES>&) -> Problem< PETSc::Math::LinearSystem, TrialFunction< Solution, TrialFES >, TestFunction< TestFES > >
Deduction guide for two-field PETSc Problem.
template<class U1, class U2, class U3, class... Us>
auto Problem(U1&, U2&, U3&, Us& ...) -> Problem< Rodin::PETSc::Math::LinearSystem, U1, U2, U3, Us... > -> ::value
Deduction guide for multi-field PETSc Problem.
template<class FES>
TestFunction(const FES& fes) -> TestFunction< FES >
Deduction guide for PETSc::Variational::TestFunction.
template<class FES>
TrialFunction(const FES& fes) -> TrialFunction< GridFunction< FES >, FES >
Deduction guide for PETSc::Variational::TrialFunction.
template<class LinearSystem>
BiCGSTAB(Variational::ProblemBase<LinearSystem>&) -> BiCGSTAB< LinearSystem >
CTAD for BiCGSTAB.
template<class LinearSystem>
CG(Variational::ProblemBase<LinearSystem>&) -> CG< LinearSystem >
CTAD (Class Template Argument Deduction) guide for CG.
template<class LinearSystem>
DGMRES(Variational::ProblemBase<LinearSystem>&) -> DGMRES< LinearSystem >
CTAD (Class Template Argument Deduction) guide for DGMRES.
template<class LinearSystem>
GMRES(Variational::ProblemBase<LinearSystem>&) -> GMRES< LinearSystem >
CTAD (Class Template Argument Deduction) guide for GMRES.
template<class LinearSystem>
HouseholderQR(Variational::ProblemBase<LinearSystem>&) -> HouseholderQR< LinearSystem >
CTAD for HouseholderQR.
template<class LinearSystem>
IDRS(Variational::ProblemBase<LinearSystem>&) -> IDRS< LinearSystem >
CTAD (Class Template Argument Deduction) guide for IDRS.
template<class LinearSystem>
IDRSTABL(Variational::ProblemBase<LinearSystem>&) -> IDRSTABL< LinearSystem >
CTAD (Class Template Argument Deduction) guide for IDRSTABL.
template<class LinearSystem>
LDLT(Variational::ProblemBase<LinearSystem>&) -> LDLT< LinearSystem >
CTAD (Class Template Argument Deduction) guide for LDLT.
template<class LinearSystem>
LeastSquaresCG(Variational::ProblemBase<LinearSystem>&) -> LeastSquaresCG< LinearSystem >
CTAD (Class Template Argument Deduction) guide for LeastSquaresCG.
template<class LinearSystem>
MINRES(Variational::ProblemBase<LinearSystem>&) -> MINRES< LinearSystem >
CTAD (Class Template Argument Deduction) guide for MINRES.
template<class LS>
NewtonSolver(LS&) -> NewtonSolver< LS >
CTAD (Class Template Argument Deduction) guide for NewtonSolver.
template<class LinearSystemType>
SimplicialLDLT(Variational::ProblemBase<LinearSystemType>&) -> SimplicialLDLT< LinearSystemType >
CTAD (Class Template Argument Deduction) guide for SimplicialLDLT.
template<class LinearSystem>
SimplicialLLT(Variational::ProblemBase<LinearSystem>&) -> SimplicialLLT< LinearSystem >
CTAD (Class Template Argument Deduction) guide for SimplicialLLT.
template<class LinearSystem>
SparseLU(Variational::ProblemBase<LinearSystem>&) -> SparseLU< LinearSystem >
CTAD (Class Template Argument Deduction) guide for SparseLU.
template<class LinearSystem>
SparseQR(Variational::ProblemBase<LinearSystem>&) -> SparseQR< LinearSystem >
CTAD (Class Template Argument Deduction) guide for SparseQR.
template<class Solution, class FES, class FunctionDerived>
DirichletBC(const TrialFunction<Solution, FES>&, const FunctionBase<FunctionDerived>&) -> DirichletBC< TrialFunction< Solution, FES >, FunctionBase< FunctionDerived > >
CTAD for DirichletBC.
template<class FES, class Data>
Grad(const GridFunction<FES, Data>&) -> Grad< GridFunction< FES, Data > >
CTAD for Grad of a GridFunction.
template<class NestedDerived, class FES, ShapeFunctionSpaceType Space>
Grad(const ShapeFunction<NestedDerived, FES, Space>&) -> Grad< ShapeFunction< NestedDerived, FES, Space > >
CTAD for Grad of a ShapeFunction.
template<size_t K, class Scalar, class Data, class Mesh>
Div(const GridFunction<H1<K, Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< H1< K, Math::Vector< Scalar >, Mesh >, Data > >
CTAD for Div of an H1 GridFunction.
template<size_t K, class Range, class Data, class Mesh>
Jacobian(const GridFunction<H1<K, Range, Mesh>, Data>&) -> Jacobian< GridFunction< H1< K, Range, Mesh >, Data > >
CTAD for Jacobian of an H1 GridFunction.
template<class FES>
LinearForm(const TestFunction<FES>& v) -> LinearForm< FES, Math::Vector< typename FormLanguage::Traits< FES >::ScalarType > >
CTAD for LinearForm.
template<class Range, class Data, class Mesh>
Grad(const GridFunction<P0<Range, Mesh>, Data>&) -> Grad< GridFunction< P0< Range, Mesh >, Data > >
CTAD for Grad of a P0 GridFunction.
template<class Context>
P0(const Geometry::Mesh<Context>&) -> P0< Real, Geometry::Mesh< Context > >
CTAD for P0 from mesh - deduces to RealP0.
template<class Scalar, class Data, class Mesh>
Div(const GridFunction<P0g<Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< P0g< Math::Vector< Scalar >, Mesh >, Data > >
CTAD for Div of a P0g GridFunction.
template<class Range, class Data, class Mesh>
Jacobian(const GridFunction<P0g<Range, Mesh>, Data>&) -> Jacobian< GridFunction< P0g< Range, Mesh >, Data > >
CTAD for Jacobian of a P0g vector GridFunction.
template<class Range, class Data, class Mesh>
Derivative(size_t, const GridFunction<P1<Range, Mesh>, Data>&) -> Derivative< GridFunction< P1< Range, Mesh >, Data > >
CTAD for Derivative of a P1 GridFunction.
template<class Scalar, class Data, class Mesh>
Div(const GridFunction<P1<Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< P1< Math::Vector< Scalar >, Mesh >, Data > >
CTAD for Div of a P1 GridFunction.
template<class Range, class Data, class Mesh>
Jacobian(const GridFunction<P1<Range, Mesh>, Data>&) -> Jacobian< GridFunction< P1< Range, Mesh >, Data > >
CTAD for Jacobian of a P1 GridFunction.
template<class Context>
P1(const Geometry::Mesh<Context>&) -> P1< Real, Geometry::Mesh< Context > >
CTAD for P1 from mesh - deduces to RealP1.
template<class Solution, class FES>
PeriodicBC(const TrialFunction<Solution, FES>&, const IndexMap<IndexSet>&) -> PeriodicBC< TrialFunction< Solution, FES >, IndexMap< IndexSet > >
CTAD for PeriodicBC.

Function documentation

template<class Solution, class TrialFES, class TestFES>
BilinearForm(const PETSc::Variational::TrialFunction<Solution, TrialFES>& u, const PETSc::Variational::TestFunction<TestFES>& v) -> BilinearForm< Solution, TrialFES, TestFES, ::Mat >

Deduction guide for PETSc-backed BilinearForm.

template<class FES>
GridFunction(const FES&) -> GridFunction< FES >

Deduction guide for PETSc::Variational::GridFunction.

template<class FES>
LinearForm(const PETSc::Variational::TestFunction<FES>&) -> LinearForm< FES, ::Vec >

Deduction guide for PETSc-backed LinearForm.

template<class Solution, class TrialFES, class TestFES>
Problem(PETSc::Variational::TrialFunction<Solution, TrialFES>&, PETSc::Variational::TestFunction<TestFES>&) -> Problem< PETSc::Math::LinearSystem, TrialFunction< Solution, TrialFES >, TestFunction< TestFES > >

Deduction guide for two-field PETSc Problem.

template<class U1, class U2, class U3, class... Us>
::value Problem(U1&, U2&, U3&, Us& ...) -> Problem< Rodin::PETSc::Math::LinearSystem, U1, U2, U3, Us... >

Deduction guide for multi-field PETSc Problem.

template<class FES>
TestFunction(const FES& fes) -> TestFunction< FES >

Deduction guide for PETSc::Variational::TestFunction.

template<class FES>
TrialFunction(const FES& fes) -> TrialFunction< GridFunction< FES >, FES >

Deduction guide for PETSc::Variational::TrialFunction.

template<class LinearSystem>
BiCGSTAB(Variational::ProblemBase<LinearSystem>&) -> BiCGSTAB< LinearSystem >

CTAD for BiCGSTAB.

template<class LinearSystem>
CG(Variational::ProblemBase<LinearSystem>&) -> CG< LinearSystem >

CTAD (Class Template Argument Deduction) guide for CG.

template<class LinearSystem>
DGMRES(Variational::ProblemBase<LinearSystem>&) -> DGMRES< LinearSystem >

CTAD (Class Template Argument Deduction) guide for DGMRES.

template<class LinearSystem>
GMRES(Variational::ProblemBase<LinearSystem>&) -> GMRES< LinearSystem >

CTAD (Class Template Argument Deduction) guide for GMRES.

template<class LinearSystem>
HouseholderQR(Variational::ProblemBase<LinearSystem>&) -> HouseholderQR< LinearSystem >

CTAD for HouseholderQR.

template<class LinearSystem>
IDRS(Variational::ProblemBase<LinearSystem>&) -> IDRS< LinearSystem >

CTAD (Class Template Argument Deduction) guide for IDRS.

template<class LinearSystem>
IDRSTABL(Variational::ProblemBase<LinearSystem>&) -> IDRSTABL< LinearSystem >

CTAD (Class Template Argument Deduction) guide for IDRSTABL.

template<class LinearSystem>
LDLT(Variational::ProblemBase<LinearSystem>&) -> LDLT< LinearSystem >

CTAD (Class Template Argument Deduction) guide for LDLT.

template<class LinearSystem>
LeastSquaresCG(Variational::ProblemBase<LinearSystem>&) -> LeastSquaresCG< LinearSystem >

CTAD (Class Template Argument Deduction) guide for LeastSquaresCG.

template<class LinearSystem>
MINRES(Variational::ProblemBase<LinearSystem>&) -> MINRES< LinearSystem >

CTAD (Class Template Argument Deduction) guide for MINRES.

template<class LS>
NewtonSolver(LS&) -> NewtonSolver< LS >

CTAD (Class Template Argument Deduction) guide for NewtonSolver.

Allows writing:

SparseLU solver(tangent);
NewtonSolver newton(solver);

template<class LinearSystemType>
SimplicialLDLT(Variational::ProblemBase<LinearSystemType>&) -> SimplicialLDLT< LinearSystemType >

CTAD (Class Template Argument Deduction) guide for SimplicialLDLT.

template<class LinearSystem>
SimplicialLLT(Variational::ProblemBase<LinearSystem>&) -> SimplicialLLT< LinearSystem >

CTAD (Class Template Argument Deduction) guide for SimplicialLLT.

template<class LinearSystem>
SparseLU(Variational::ProblemBase<LinearSystem>&) -> SparseLU< LinearSystem >

CTAD (Class Template Argument Deduction) guide for SparseLU.

template<class LinearSystem>
SparseQR(Variational::ProblemBase<LinearSystem>&) -> SparseQR< LinearSystem >

CTAD (Class Template Argument Deduction) guide for SparseQR.

template<class Solution, class FES, class FunctionDerived>
DirichletBC(const TrialFunction<Solution, FES>&, const FunctionBase<FunctionDerived>&) -> DirichletBC< TrialFunction< Solution, FES >, FunctionBase< FunctionDerived > >

CTAD for DirichletBC.

Template parameters
FES Type of finite element space

template<class FES, class Data>
Grad(const GridFunction<FES, Data>&) -> Grad< GridFunction< FES, Data > >

CTAD for Grad of a GridFunction.

template<class NestedDerived, class FES, ShapeFunctionSpaceType Space>
Grad(const ShapeFunction<NestedDerived, FES, Space>&) -> Grad< ShapeFunction< NestedDerived, FES, Space > >

CTAD for Grad of a ShapeFunction.

template<size_t K, class Scalar, class Data, class Mesh>
Div(const GridFunction<H1<K, Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< H1< K, Math::Vector< Scalar >, Mesh >, Data > >

CTAD for Div of an H1 GridFunction.

template<size_t K, class Range, class Data, class Mesh>
Jacobian(const GridFunction<H1<K, Range, Mesh>, Data>&) -> Jacobian< GridFunction< H1< K, Range, Mesh >, Data > >

CTAD for Jacobian of an H1 GridFunction.

template<class FES>
LinearForm(const TestFunction<FES>& v) -> LinearForm< FES, Math::Vector< typename FormLanguage::Traits< FES >::ScalarType > >

CTAD for LinearForm.

Parameters
in Reference to a TestFunction

The constructor taking a single TestFunction reference deduces a LinearForm with a default-constructed Math::Vector owned by the LinearForm instance.

template<class Range, class Data, class Mesh>
Grad(const GridFunction<P0<Range, Mesh>, Data>&) -> Grad< GridFunction< P0< Range, Mesh >, Data > >

CTAD for Grad of a P0 GridFunction.

template<class Scalar, class Data, class Mesh>
Div(const GridFunction<P0g<Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< P0g< Math::Vector< Scalar >, Mesh >, Data > >

CTAD for Div of a P0g GridFunction.

template<class Range, class Data, class Mesh>
Jacobian(const GridFunction<P0g<Range, Mesh>, Data>&) -> Jacobian< GridFunction< P0g< Range, Mesh >, Data > >

CTAD for Jacobian of a P0g vector GridFunction.

template<class Range, class Data, class Mesh>
Derivative(size_t, const GridFunction<P1<Range, Mesh>, Data>&) -> Derivative< GridFunction< P1< Range, Mesh >, Data > >

CTAD for Derivative of a P1 GridFunction.

template<class Scalar, class Data, class Mesh>
Div(const GridFunction<P1<Math::Vector<Scalar>, Mesh>, Data>&) -> Div< GridFunction< P1< Math::Vector< Scalar >, Mesh >, Data > >

CTAD for Div of a P1 GridFunction.

template<class Range, class Data, class Mesh>
Jacobian(const GridFunction<P1<Range, Mesh>, Data>&) -> Jacobian< GridFunction< P1< Range, Mesh >, Data > >

CTAD for Jacobian of a P1 GridFunction.

template<class Solution, class FES>
PeriodicBC(const TrialFunction<Solution, FES>&, const IndexMap<IndexSet>&) -> PeriodicBC< TrialFunction< Solution, FES >, IndexMap< IndexSet > >

CTAD for PeriodicBC.

Template parameters
FES Type of finite element space