DGtal 1.4.0
Loading...
Searching...
No Matches
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out > Class Template Reference

Aim: This wraps a linear algebra solver around a discrete exterior calculus. More...

#include <DGtal/dec/DiscreteExteriorCalculusSolver.h>

Public Types

typedef TCalculus Calculus
 
typedef TLinearAlgebraSolver LinearAlgebraSolver
 
typedef LinearOperator< Calculus, order_in, duality_in, order_out, duality_out > Operator
 
typedef KForm< Calculus, order_in, duality_in > SolutionKForm
 
typedef KForm< Calculus, order_out, duality_out > InputKForm
 

Public Member Functions

 BOOST_STATIC_ASSERT ((order_in >=0))
 
 BOOST_STATIC_ASSERT ((order_in<=TCalculus::dimensionEmbedded))
 
 BOOST_STATIC_ASSERT ((order_out >=0))
 
 BOOST_STATIC_ASSERT ((order_out<=TCalculus::dimensionEmbedded))
 
 DiscreteExteriorCalculusSolver ()
 
void selfDisplay (std::ostream &out) const
 
DiscreteExteriorCalculusSolvercompute (const Operator &linear_operator)
 
SolutionKForm solve (const InputKForm &input_kform) const
 
bool isValid () const
 

Data Fields

const CalculusmyCalculus
 
LinearAlgebraSolver myLinearAlgebraSolver
 

Detailed Description

template<typename TCalculus, typename TLinearAlgebraSolver, Order order_in, Duality duality_in, Order order_out, Duality duality_out>
class DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >

Aim: This wraps a linear algebra solver around a discrete exterior calculus.

Description of template class 'DiscreteExteriorCalculusSolver'

Template Parameters
TCalculusshould be DiscreteExteriorCalculus.
TLinearAlgebraSolvershould be a model of CLinearAlgebraSolver.
order_inis the input order of the linear problem.
duality_inis the input duality of the linear problem.
order_outis the output order of the linear problem.
duality_outis the output duality of the linear problem.
Examples
dec/exampleDECSurface.cpp, and dec/exampleDiscreteExteriorCalculusSolve.cpp.

Definition at line 69 of file DiscreteExteriorCalculusSolver.h.

Member Typedef Documentation

◆ Calculus

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
typedef TCalculus DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::Calculus

Definition at line 78 of file DiscreteExteriorCalculusSolver.h.

◆ InputKForm

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
typedef KForm<Calculus, order_out, duality_out> DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::InputKForm

Definition at line 83 of file DiscreteExteriorCalculusSolver.h.

◆ LinearAlgebraSolver

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
typedef TLinearAlgebraSolver DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::LinearAlgebraSolver

Definition at line 79 of file DiscreteExteriorCalculusSolver.h.

◆ Operator

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
typedef LinearOperator<Calculus, order_in, duality_in, order_out, duality_out> DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::Operator

Definition at line 81 of file DiscreteExteriorCalculusSolver.h.

◆ SolutionKForm

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
typedef KForm<Calculus, order_in, duality_in> DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::SolutionKForm

Definition at line 82 of file DiscreteExteriorCalculusSolver.h.

Constructor & Destructor Documentation

◆ DiscreteExteriorCalculusSolver()

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::DiscreteExteriorCalculusSolver ( )

Constructor.

Member Function Documentation

◆ BOOST_STATIC_ASSERT() [1/4]

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::BOOST_STATIC_ASSERT ( (order_in >=0) )

◆ BOOST_STATIC_ASSERT() [2/4]

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::BOOST_STATIC_ASSERT ( (order_in<=TCalculus::dimensionEmbedded) )

◆ BOOST_STATIC_ASSERT() [3/4]

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::BOOST_STATIC_ASSERT ( (order_out >=0) )

◆ BOOST_STATIC_ASSERT() [4/4]

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::BOOST_STATIC_ASSERT ( (order_out<=TCalculus::dimensionEmbedded) )

◆ compute()

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
DiscreteExteriorCalculusSolver & DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::compute ( const Operator & linear_operator)

Prefactorize problem / set problem operator.

Parameters
linear_operatorlinear operator.
Returns
*this.
Examples
dec/exampleDECSurface.cpp, and dec/exampleDiscreteExteriorCalculusSolve.cpp.

Referenced by DGtal::ATSolver2D< TKSpace, TLinearAlgebra >::solveOneAlternateStep(), HodgeTester< Calculus, order >::test(), and test_linear_structure().

◆ isValid()

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
bool DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

Referenced by DGtal::ATSolver2D< TKSpace, TLinearAlgebra >::solveOneAlternateStep().

◆ selfDisplay()

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
void DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::selfDisplay ( std::ostream & out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ solve()

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
SolutionKForm DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::solve ( const InputKForm & input_kform) const

Solve prefactorized / set problem input.

Parameters
input_kforminput k-form.
Returns
problem solution.
Examples
dec/exampleDECSurface.cpp, and dec/exampleDiscreteExteriorCalculusSolve.cpp.

Referenced by DGtal::ATSolver2D< TKSpace, TLinearAlgebra >::solveOneAlternateStep(), HodgeTester< Calculus, order >::test(), and test_linear_structure().

Field Documentation

◆ myCalculus

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
const Calculus* DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::myCalculus

Pointer to const calculus

Definition at line 95 of file DiscreteExteriorCalculusSolver.h.

◆ myLinearAlgebraSolver

template<typename TCalculus , typename TLinearAlgebraSolver , Order order_in, Duality duality_in, Order order_out, Duality duality_out>
LinearAlgebraSolver DGtal::DiscreteExteriorCalculusSolver< TCalculus, TLinearAlgebraSolver, order_in, duality_in, order_out, duality_out >::myLinearAlgebraSolver

Linear algebra solver.

Definition at line 100 of file DiscreteExteriorCalculusSolver.h.

Referenced by DGtal::ATSolver2D< TKSpace, TLinearAlgebra >::solveOneAlternateStep().


The documentation for this class was generated from the following file: