Alsvinn  0.5.3
The fast FVM simulator with UQ support
Public Types | Public Member Functions | List of all members
alsfvm::functional::Functional Class Referenceabstract

Abstract base class to represent a functional. More...

#include <alsfvm/functional/Functional.hpp>

Inheritance diagram for alsfvm::functional::Functional:
alsfvm::functional::BoundedVariation alsfvm::functional::Identity alsfvm::functional::IdentityCUDA alsfvm::functional::Legendre alsfvm::functional::LegendrePointWise alsfvm::functional::LegendrePointWiseCUDA alsfvm::functional::LogEntropy alsfvm::functional::LogEntropyCUDA alsfvm::functional::Moment alsfvm::functional::StructureBase alsfvm::functional::StructureCube alsfvm::functional::StructureCubeCUDA

Public Types

typedef alsutils::parameters::Parameters Parameters
 To be used to pass parameters to the constructors. More...
 

Public Member Functions

virtual ~Functional ()
 
virtual void operator() (volume::Volume &conservedVolumeOut, const volume::Volume &conservedVolumeIn, const real weight, const grid::Grid &grid)=0
 
virtual ivec3 getFunctionalSize (const grid::Grid &grid) const =0
 
virtual ivec3 getGhostCellSizes (const grid::Grid &grid, const volume::Volume &volume) const
 
virtual std::string getPlatformToAllocateOn (const std::string &platform) const
 

Detailed Description

Abstract base class to represent a functional.

A functional is an abstract type to represent a map from the solution to some other space.

Member Typedef Documentation

◆ Parameters

To be used to pass parameters to the constructors.

Constructor & Destructor Documentation

◆ ~Functional()

virtual alsfvm::functional::Functional::~Functional ( )
inlinevirtual

Member Function Documentation

◆ getFunctionalSize()

virtual ivec3 alsfvm::functional::Functional::getFunctionalSize ( const grid::Grid grid) const
pure virtual

◆ getGhostCellSizes()

ivec3 alsfvm::functional::Functional::getGhostCellSizes ( const grid::Grid grid,
const volume::Volume volume 
) const
virtual

Reimplemented in alsfvm::functional::Moment.

◆ getPlatformToAllocateOn()

std::string alsfvm::functional::Functional::getPlatformToAllocateOn ( const std::string &  platform) const
virtual

◆ operator()()

virtual void alsfvm::functional::Functional::operator() ( volume::Volume conservedVolumeOut,
const volume::Volume conservedVolumeIn,
const real  weight,
const grid::Grid grid 
)
pure virtual

Computes the operator value on the givne input data

Note
In order to support time integration, the result should be added to conservedVolumeOut and extraVolumeOut, not overriding it.
Parameters
[out]conservedVolumeOutat the end, should have the contribution of the functional for the conservedVariables
[in]conservedVolumeInthe state of the conserved variables
[in]weightthe current weight to be applied to the functional. Ie, the functional should compute
conservedVolumeOut += weight + f(conservedVolumeIn)
[in]gridthe grid to work on

Implemented in alsfvm::functional::Legendre, alsfvm::functional::LegendrePointWiseCUDA, alsfvm::functional::LegendrePointWise, alsfvm::functional::LogEntropyCUDA, alsfvm::functional::LogEntropy, alsfvm::functional::Moment, alsfvm::functional::IdentityCUDA, alsfvm::functional::Identity, alsfvm::functional::StructureBase, alsfvm::functional::StructureCubeCUDA, alsfvm::functional::StructureCube, and alsfvm::functional::BoundedVariation.


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