DGtal 1.4.0
|
Aim: A helper class to solve a system with Dirichlet boundary conditions. More...
#include <DGtal/math/linalg/DirichletConditions.h>
Public Types | |
typedef TLinearAlgebraBackend | LinearAlgebraBackend |
typedef LinearAlgebraBackend::DenseVector::Index | Index |
typedef LinearAlgebraBackend::DenseVector::Scalar | Scalar |
typedef LinearAlgebraBackend::DenseVector | DenseVector |
typedef LinearAlgebraBackend::IntegerVector | IntegerVector |
typedef LinearAlgebraBackend::DenseMatrix | DenseMatrix |
typedef LinearAlgebraBackend::SparseMatrix | SparseMatrix |
typedef LinearAlgebraBackend::Triplet | Triplet |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicVector< DenseVector >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< DenseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, DenseMatrix >)) | |
Static Public Member Functions | |
static SparseMatrix | dirichletOperator (const SparseMatrix &A, const IntegerVector &p) |
static DenseVector | dirichletVector (const SparseMatrix &A, const DenseVector &b, const IntegerVector &p, const DenseVector &u) |
static DenseVector | dirichletSolution (const DenseVector &xd, const IntegerVector &p, const DenseVector &u) |
static IntegerVector | nullBoundaryVector (const DenseVector &b) |
Aim: A helper class to solve a system with Dirichlet boundary conditions.
Description of template class 'DirichletConditions'
Typically you have a system of the form \( A x = b \), where you wish to set up Dirichlet boundary conditions \( u \) at some places \( p \) where \( p=1 \) ( \( p=0 \) within the domain). In this case, you solve a modified smaller system \( A_d x_d = b_d \).
A typical usage is:
It is a model of boost::CopyConstructible, boost::DefaultConstructible, boost::Assignable.
TLinearAlgebraBackend | linear algebra backend used (i.e. EigenLinearAlgebraBackend). |
Definition at line 97 of file DirichletConditions.h.
typedef LinearAlgebraBackend::DenseMatrix DGtal::DirichletConditions< TLinearAlgebraBackend >::DenseMatrix |
Definition at line 106 of file DirichletConditions.h.
typedef LinearAlgebraBackend::DenseVector DGtal::DirichletConditions< TLinearAlgebraBackend >::DenseVector |
Definition at line 104 of file DirichletConditions.h.
typedef LinearAlgebraBackend::DenseVector::Index DGtal::DirichletConditions< TLinearAlgebraBackend >::Index |
Definition at line 102 of file DirichletConditions.h.
typedef LinearAlgebraBackend::IntegerVector DGtal::DirichletConditions< TLinearAlgebraBackend >::IntegerVector |
Definition at line 105 of file DirichletConditions.h.
typedef TLinearAlgebraBackend DGtal::DirichletConditions< TLinearAlgebraBackend >::LinearAlgebraBackend |
Definition at line 100 of file DirichletConditions.h.
typedef LinearAlgebraBackend::DenseVector::Scalar DGtal::DirichletConditions< TLinearAlgebraBackend >::Scalar |
Definition at line 103 of file DirichletConditions.h.
typedef LinearAlgebraBackend::SparseMatrix DGtal::DirichletConditions< TLinearAlgebraBackend >::SparseMatrix |
Definition at line 107 of file DirichletConditions.h.
typedef LinearAlgebraBackend::Triplet DGtal::DirichletConditions< TLinearAlgebraBackend >::Triplet |
Definition at line 108 of file DirichletConditions.h.
DGtal::DirichletConditions< TLinearAlgebraBackend >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< DenseMatrix >) | ) |
DGtal::DirichletConditions< TLinearAlgebraBackend >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< SparseMatrix >) | ) |
DGtal::DirichletConditions< TLinearAlgebraBackend >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicVector< DenseVector >) | ) |
DGtal::DirichletConditions< TLinearAlgebraBackend >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, DenseMatrix >) | ) |
DGtal::DirichletConditions< TLinearAlgebraBackend >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, SparseMatrix >) | ) |
|
inlinestatic |
Typically you have a system of the form \( A x = b \), where you wish to set up Dirichlet boundary conditions \( u \) at some places \( p \) where \( p=1 \) ( \( p=0 \) within the domain). In this case, you solve a modified smaller system \( A_d x_d = b_d \).
A | the matrix representing the linear operator in Ax=b. |
p | the vector such that p[i]=1 whenever the i-th node is a boundary node, p[i]=0 otherwise. |
#row(A) = #col(A) = #col(p)
Definition at line 130 of file DirichletConditions.h.
Referenced by DGtal::GeodesicsInHeat< TPolygonalCalculus >::init(), and DGtal::VectorsInHeat< TPolygonalCalculus >::init().
|
inlinestatic |
Typically you have a system of the form \( A x = b \), where you wish to set up Dirichlet boundary conditions \( u \) at some places \( p \) where \( p=1 \) ( \( p=0 \) within the domain). In this case, you solve a modified smaller system \( A_d x_d = b_d \).
xd | the solution to the smaller system \( A_d x_d = b_d \). |
p | the vector such that p[i]=1 whenever the i-th node is a boundary node, p[i]=0 otherwise. |
u | the vector giving the constrained Dirichlet values on places such that p[i]=1 . |
Definition at line 203 of file DirichletConditions.h.
Referenced by DGtal::GeodesicsInHeat< TPolygonalCalculus >::compute(), and DGtal::VectorsInHeat< TPolygonalCalculus >::compute().
|
inlinestatic |
Typically you have a system of the form \( A x = b \), where you wish to set up Dirichlet boundary conditions \( u \) at some places \( p \) where \( p=1 \) ( \( p=0 \) within the domain). In this case, you solve a modified smaller system \( A_d x_d = b_d \).
A | the matrix representing the linear operator in \( Ax=b \). |
b | the vector representing the vector to solve for in \( Ax=b \). |
p | the vector such that p[i]=1 whenever the i-th node is a boundary node, p[i]=0 otherwise. |
u | the vector giving the constrained Dirichlet values on places such that p[i]=1 . |
#row(A) = #col(A) = #col(p) = #col(b) = #col(u)
Definition at line 170 of file DirichletConditions.h.
Referenced by DGtal::GeodesicsInHeat< TPolygonalCalculus >::compute(), and DGtal::VectorsInHeat< TPolygonalCalculus >::compute().
|
inlinestatic |
Utility method to build a null vector that will be useful to define the boundary characteristic set for Dirichlet conditions.
b | any vector of the size of your problem (e.g., \( b \) in your problem \( Ax = b \)) |
Definition at line 223 of file DirichletConditions.h.