Alsvinn  0.5.3
The fast FVM simulator with UQ support
Public Member Functions | List of all members
alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix > Class Template Reference

#include <alsfvm/diffusion/TecnoDiffusionCUDA.hpp>

Inheritance diagram for alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix >:
alsfvm::diffusion::DiffusionOperator

Public Member Functions

 TecnoDiffusionCUDA (volume::VolumeFactory &volumeFactory, alsfvm::shared_ptr< reconstruction::tecno::TecnoReconstruction > reconstruction, const simulator::SimulatorParameters &simulatorParameters)
 
virtual void applyDiffusion (volume::Volume &outputVolume, const volume::Volume &conservedVolume)
 
virtual size_t getNumberOfGhostCells () const
 
- Public Member Functions inherited from alsfvm::diffusion::DiffusionOperator
virtual ~DiffusionOperator ()
 

Detailed Description

template<class Equation, template< typename, int > class DiffusionMatrix>
class alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix >

Applies the Tecno diffusion to the operator. This will always take the form

\[R\Lambda R^{-1} \langle\langle v\rangle \rangle\]

where $R$ is the matrix of eigenvalues of the flux jacobian, and $\Lambda$ is either the Rusanov or Roe matrix. See http://www.cscamm.umd.edu/tadmor/pub/TV+entropy/Fjordholm_Mishra_Tadmor_SINUM2012.pdf

The matrix $\Lambda$ is specified through the DiffusionMatrix template argument.

Note
this is for CUDA, see TecnoDiffusionCPU for the CPU version.

Constructor & Destructor Documentation

◆ TecnoDiffusionCUDA()

template<class Equation , template< typename, int > class DiffusionMatrix>
alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix >::TecnoDiffusionCUDA ( volume::VolumeFactory volumeFactory,
alsfvm::shared_ptr< reconstruction::tecno::TecnoReconstruction reconstruction,
const simulator::SimulatorParameters simulatorParameters 
)

Member Function Documentation

◆ applyDiffusion()

template<class Equation , template< typename, int > class DiffusionMatrix>
virtual void alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix >::applyDiffusion ( volume::Volume outputVolume,
const volume::Volume conservedVolume 
)
virtual

Applies numerical diffusion to the outputVolume given the data in conservedVolume.

Note
The numerical diffusion will be added to outputVolume, ie. the code will essentially work like
outputVolume += diffusion(conservedVolume);

Implements alsfvm::diffusion::DiffusionOperator.

◆ getNumberOfGhostCells()

template<class Equation , template< typename, int > class DiffusionMatrix>
virtual size_t alsfvm::diffusion::TecnoDiffusionCUDA< Equation, DiffusionMatrix >::getNumberOfGhostCells ( ) const
virtual

Gets the total number of ghost cells this diffusion needs, this is typically governed by reconstruction algorithm.

Implements alsfvm::diffusion::DiffusionOperator.


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