template<typename _Real>
struct DiffusionSolver< _Real >
Solving diffusion on 3D regular grids (stored as CImg)
- Parameters
-
size | (in) the size of the regular domain in the 3 directions. |
img | (in-out) the image to diffuse. It contains the Dirichlet boundary values and contains warm-start values (must be set to 0 for no warm-start). |
mask | (in) represents the type of each voxel. A negative value represents the exterior of the domain, a positive value for the interior and 0 for Dirichlet boundary conditions. The boundary exterior/interior implicitly represents a Neumann boundary condition imposing null gradients along normals. |
- Warning
- the material map must be normalized between [0,1]
-
at least a one pixel outside border
- Author
- : matth.nosp@m.ieu..nosp@m.nesme.nosp@m.@inr.nosp@m.ia.fr
|
static void | setNbThreads (unsigned nb) |
| for multi-threaded implementations More...
|
|
static void | setDefaultNbThreads () |
|
static void | setMaxNbThreads () |
|
static int | getMaxNbThreads () |
|
static void | solveGS (ImageType &img, const MaskType &mask, Real spacingX, Real spacingY, Real spacingZ, unsigned iterations, Real threshold, Real sor=1, const ImageType *material=NULL, Real minValueThreshold=0) |
|
static void | solveJacobi (ImageType &img, const MaskType &mask, Real spacingX, Real spacingY, Real spacingZ, unsigned iterations, Real threshold, const ImageType *material=NULL, Real minValueThreshold=0) |
| Jacobi implementation. More...
|
|
static void | solveCG (ImageType &img, const MaskType &mask, Real spacingX, Real spacingY, Real spacingZ, unsigned iterations, Real threshold, const ImageType *material=NULL) |
| Conjugate Gradient implementation (matrix-free) More...
|
|