CubbyFlow::GridForwardEulerDiffusionSolver3 Class Referencefinal

3-D grid-based forward Euler diffusion solver. More...

#include <Core/Solver/Grid/GridForwardEulerDiffusionSolver3.hpp>

Inheritance diagram for CubbyFlow::GridForwardEulerDiffusionSolver3:
CubbyFlow::GridDiffusionSolver3

Public Member Functions

 GridForwardEulerDiffusionSolver3 ()=default
 Default constructor. More...
 
 GridForwardEulerDiffusionSolver3 (const GridForwardEulerDiffusionSolver3 &)=delete
 Deleted copy constructor. More...
 
 GridForwardEulerDiffusionSolver3 (GridForwardEulerDiffusionSolver3 &&) noexcept=delete
 Deleted move constructor. More...
 
 ~GridForwardEulerDiffusionSolver3 () override=default
 Default virtual destructor. More...
 
GridForwardEulerDiffusionSolver3operator= (const GridForwardEulerDiffusionSolver3 &)=delete
 Deleted copy assignment operator. More...
 
GridForwardEulerDiffusionSolver3operator= (GridForwardEulerDiffusionSolver3 &&) 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
 
- Public Member Functions inherited from CubbyFlow::GridDiffusionSolver3
 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...
 
GridDiffusionSolver3operator= (const GridDiffusionSolver3 &)=delete
 Deleted copy assignment operator. More...
 
GridDiffusionSolver3operator= (GridDiffusionSolver3 &&) noexcept=delete
 Deleted move assignment operator. More...
 

Detailed Description

3-D grid-based forward Euler diffusion solver.

This class implements 3-D grid-based forward Euler diffusion solver using second-order central differencing spatially. Since the method is relying on explicit time-integration (i.e. forward Euler), the diffusion coefficient is limited by the time interval and grid spacing such as: $\mu < \frac{h}{12\Delta t} $ where $\mu$, $h$, and $\Delta t$ are the diffusion coefficient, grid spacing, and time interval, respectively.

Constructor & Destructor Documentation

◆ GridForwardEulerDiffusionSolver3() [1/3]

CubbyFlow::GridForwardEulerDiffusionSolver3::GridForwardEulerDiffusionSolver3 ( )
default

Default constructor.

◆ GridForwardEulerDiffusionSolver3() [2/3]

CubbyFlow::GridForwardEulerDiffusionSolver3::GridForwardEulerDiffusionSolver3 ( const GridForwardEulerDiffusionSolver3 )
delete

Deleted copy constructor.

◆ GridForwardEulerDiffusionSolver3() [3/3]

CubbyFlow::GridForwardEulerDiffusionSolver3::GridForwardEulerDiffusionSolver3 ( GridForwardEulerDiffusionSolver3 &&  )
deletenoexcept

Deleted move constructor.

◆ ~GridForwardEulerDiffusionSolver3()

CubbyFlow::GridForwardEulerDiffusionSolver3::~GridForwardEulerDiffusionSolver3 ( )
overridedefault

Default virtual destructor.

Member Function Documentation

◆ operator=() [1/2]

GridForwardEulerDiffusionSolver3& CubbyFlow::GridForwardEulerDiffusionSolver3::operator= ( const GridForwardEulerDiffusionSolver3 )
delete

Deleted copy assignment operator.

◆ operator=() [2/2]

GridForwardEulerDiffusionSolver3& CubbyFlow::GridForwardEulerDiffusionSolver3::operator= ( GridForwardEulerDiffusionSolver3 &&  )
deletenoexcept

Deleted move assignment operator.

◆ Solve() [1/3]

void CubbyFlow::GridForwardEulerDiffusionSolver3::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() } 
)
overridevirtual

Solves diffusion equation for a scalar field.

Parameters
sourceInput scalar field.
diffusionCoefficientAmount of diffusion.
timeIntervalInSecondsSmall time-interval that diffusion occur.
destOutput scalar field.
boundarySDFShape of the solid boundary that is empty by default.
fluidSDFShape of the fluid boundary that is full by default.

Implements CubbyFlow::GridDiffusionSolver3.

◆ Solve() [2/3]

void CubbyFlow::GridForwardEulerDiffusionSolver3::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() } 
)
overridevirtual

Solves diffusion equation for a collocated vector field.

Parameters
sourceInput collocated vector field.
diffusionCoefficientAmount of diffusion.
timeIntervalInSecondsSmall time-interval that diffusion occur.
destOutput collocated vector field.
boundarySDFShape of the solid boundary that is empty by default.
fluidSDFShape of the fluid boundary that is full by default.

Implements CubbyFlow::GridDiffusionSolver3.

◆ Solve() [3/3]

void CubbyFlow::GridForwardEulerDiffusionSolver3::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() } 
)
overridevirtual

Solves diffusion equation for a face-centered vector field.

Parameters
sourceInput face-centered vector field.
diffusionCoefficientAmount of diffusion.
timeIntervalInSecondsSmall time-interval that diffusion occur.
destOutput face-centered vector field.
boundarySDFShape of the solid boundary that is empty by default.
fluidSDFShape of the fluid boundary that is full by default.

Implements CubbyFlow::GridDiffusionSolver3.


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