GridDiffusionSolver2 ()=default
Default constructor.
GridDiffusionSolver2 (const GridDiffusionSolver2 &)=delete
Deleted copy constructor.
GridDiffusionSolver2 (GridDiffusionSolver2 &&) noexcept =delete
Deleted move constructor.
virtual ~GridDiffusionSolver2 ()=default
Default virtual destructor.
GridDiffusionSolver2 & operator= (const GridDiffusionSolver2 &)=delete
Deleted copy assignment operator.
GridDiffusionSolver2 & operator= (GridDiffusionSolver2 &&) noexcept =delete
Deleted move assignment operator.
virtual void Solve (const ScalarGrid2 &source , double diffusionCoefficient , double timeIntervalInSeconds, ScalarGrid2 *dest , const ScalarField2 &boundarySDF =ConstantScalarField2 { std::numeric_limits< double >::max () }, const ScalarField2 &fluidSDF =ConstantScalarField2 { -std::numeric_limits< double >::max () })=0
virtual void Solve (const CollocatedVectorGrid2 &source , double diffusionCoefficient , double timeIntervalInSeconds, CollocatedVectorGrid2 *dest , const ScalarField2 &boundarySDF =ConstantScalarField2 { std::numeric_limits< double >::max () }, const ScalarField2 &fluidSDF =ConstantScalarField2 { -std::numeric_limits< double >::max () })=0
virtual void Solve (const FaceCenteredGrid2 &source , double diffusionCoefficient , double timeIntervalInSeconds, FaceCenteredGrid2 *dest , const ScalarField2 &boundarySDF =ConstantScalarField2 { std::numeric_limits< double >::max () }, const ScalarField2 &fluidSDF =ConstantScalarField2 { -std::numeric_limits< double >::max () })=0
Abstract base class for 2-D grid-based diffusion equation solver.
This class provides functions to solve the diffusion equation for different types of fields. The target equation can be written as where is the diffusion coefficient. The field can be either scalar or vector field.