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

#include <alsfvm/diffusion/TecnoDiffusionCPU.hpp>

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

Public Member Functions

 TecnoDiffusionCPU (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< class, int > class DiffusionMatrix>
class alsfvm::diffusion::TecnoDiffusionCPU< 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.

Constructor & Destructor Documentation

◆ TecnoDiffusionCPU()

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

Member Function Documentation

◆ applyDiffusion()

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

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

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< class, int > class DiffusionMatrix>
size_t alsfvm::diffusion::TecnoDiffusionCPU< 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 files: