|
| GridBackwardEulerDiffusionSolver3 (BoundaryType boundaryType=BoundaryType::Neumann) |
| Constructs the solver with given boundary type. More...
|
|
| GridBackwardEulerDiffusionSolver3 (const GridBackwardEulerDiffusionSolver3 &)=delete |
| Deleted copy constructor. More...
|
|
| GridBackwardEulerDiffusionSolver3 (GridBackwardEulerDiffusionSolver3 &&) noexcept=delete |
| Deleted move constructor. More...
|
|
| ~GridBackwardEulerDiffusionSolver3 () override=default |
| Default virtual destructor. More...
|
|
GridBackwardEulerDiffusionSolver3 & | operator= (const GridBackwardEulerDiffusionSolver3 &)=delete |
| Deleted copy assignment operator. More...
|
|
GridBackwardEulerDiffusionSolver3 & | operator= (GridBackwardEulerDiffusionSolver3 &&) noexcept=delete |
| Deleted move assignment operator. More...
|
|
void | Solve (const ScalarGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, ScalarGrid3 *dest, const ScalarField3 &boundarySDF=ConstantScalarField3{ std::numeric_limits< double >::max() }, const ScalarField3 &fluidSDF=ConstantScalarField3{ -std::numeric_limits< double >::max() }) override |
|
void | Solve (const CollocatedVectorGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, CollocatedVectorGrid3 *dest, const ScalarField3 &boundarySDF=ConstantScalarField3{ std::numeric_limits< double >::max() }, const ScalarField3 &fluidSDF=ConstantScalarField3{ -std::numeric_limits< double >::max() }) override |
|
void | Solve (const FaceCenteredGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, FaceCenteredGrid3 *dest, const ScalarField3 &boundarySDF=ConstantScalarField3{ std::numeric_limits< double >::max() }, const ScalarField3 &fluidSDF=ConstantScalarField3{ -std::numeric_limits< double >::max() }) override |
|
void | SetLinearSystemSolver (const FDMLinearSystemSolver3Ptr &solver) |
| Sets the linear system solver for this diffusion solver. More...
|
|
| GridDiffusionSolver3 ()=default |
| Default constructor. More...
|
|
| GridDiffusionSolver3 (const GridDiffusionSolver3 &)=delete |
| Deleted copy constructor. More...
|
|
| GridDiffusionSolver3 (GridDiffusionSolver3 &&) noexcept=delete |
| Deleted move constructor. More...
|
|
virtual | ~GridDiffusionSolver3 ()=default |
| Default virtual destructor. More...
|
|
GridDiffusionSolver3 & | operator= (const GridDiffusionSolver3 &)=delete |
| Deleted copy assignment operator. More...
|
|
GridDiffusionSolver3 & | operator= (GridDiffusionSolver3 &&) noexcept=delete |
| Deleted move assignment operator. More...
|
|
3-D grid-based backward Euler diffusion solver.
This class implements 3-D grid-based forward Euler diffusion solver using second-order central differencing spatially. Since the method is following the implicit time-integration (i.e. backward Euler), larger time interval or diffusion coefficient can be used without breaking the result. Note, higher values for those parameters will still impact the accuracy of the result. To solve the backward Euler method, a linear system solver is used and incomplete Cholesky conjugate gradient method is used by default.