Alsvinn  0.5.3
The fast FVM simulator with UQ support
Namespaces | Functions
volume_foreach.hpp File Reference
#include "alsfvm/volume/Volume.hpp"
#include <functional>
#include <array>
#include "alsutils/error/Exception.hpp"
#include "alsfvm/grid/Grid.hpp"

Go to the source code of this file.

Namespaces

 alsfvm
 Various utility functions to implement the tecno flux.
 
 alsfvm::volume
 

Functions

template<class Function >
void alsfvm::volume::for_each_cell_index (const Volume &in, const Function &function, ivec3 offsetStart={0, 0, 0}, ivec3 offsetEnd={0, 0, 0})
 
template<size_t direction, bool parallel = false>
void alsfvm::volume::for_each_cell_index_with_neighbours (const Volume &in, const std::function< void(size_t leftIndex, size_t middleIndex, size_t rightIndex)> &function, ivec3 offsetStart={0, 0, 0}, ivec3 offsetEnd={0, 0, 0})
 
void alsfvm::volume::for_each_cell_index_with_neighbours (size_t direction, const Volume &in, const std::function< void(size_t leftIndex, size_t middleIndex, size_t rightIndex)> &function, ivec3 offsetStart={ 0, 0, 0 }, ivec3 offsetEnd={ 0, 0, 0 })
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 0 > &in, size_t index)
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 1 > &in, size_t index)
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 3 > &in, size_t index)
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 2 > &in, size_t index)
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 5 > &in, size_t index)
 
template<class VariableStruct >
VariableStruct alsfvm::volume::expandVariableStruct (const std::array< const real *, 4 > &in, size_t index)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 1 > &out)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 0 > &out)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 4 > &out)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 3 > &out)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 2 > &out)
 
template<class VariableStruct >
void alsfvm::volume::saveVariableStruct (const VariableStruct &in, size_t index, std::array< real *, 5 > &out)
 
template<class VariableStructIn , class VariableStructOut >
void alsfvm::volume::transform_volume (const Volume &in, Volume &out, const std::function< VariableStructOut(const VariableStructIn &)> &function)
 
template<class VariableStruct >
void alsfvm::volume::for_each_cell (const Volume &in, const std::function< void(const VariableStruct &, size_t index)> &function)
 
template<class VariableStructA , class VariableStructB >
void alsfvm::volume::for_each_cell (const Volume &inA, const Volume &inB, const std::function< void(const VariableStructA &, const VariableStructB &, size_t index)> &function)
 
template<class VariableStructA , class VariableStructB >
void alsfvm::volume::fill_volume (Volume &outA, Volume &outB, const grid::Grid &grid, const std::function< void(real x, real y, real z, VariableStructA &outA, VariableStructB &outB) > &fillerFunction)
 
void alsfvm::volume::for_each_midpoint (const Volume &volume, const grid::Grid &grid, const std::function< void(real x, real y, real z, size_t index, size_t i, size_t j, size_t k) > &function)
 
void alsfvm::volume::for_each_midpoint (const Volume &volume, const grid::Grid &grid, const std::function< void(real x, real y, real z, size_t index) > &function)
 
template<class VariableStruct >
void alsfvm::volume::fill_volume (Volume &out, const grid::Grid &grid, const std::function< void(real x, real y, real z, VariableStruct &out) > &fillerFunction)
 
template<size_t direction>
void alsfvm::volume::for_each_internal_volume_index (const Volume &volume, const std::function< void(size_t indexLeft, size_t indexMiddle, size_t indexRight)> &function, size_t ghostLayer)
 
void alsfvm::volume::for_each_internal_volume_index (const Volume &volume, const std::function< void(size_t indexMiddle)> &function)
 
template<size_t direction>
void alsfvm::volume::for_each_internal_volume_index (const Volume &volume, const std::function< void(size_t indexLeft, size_t indexMiddle, size_t indexRight)> &function)
 
void alsfvm::volume::for_each_internal_volume_index (const Volume &volume, size_t direction, const std::function< void(size_t indexLeft, size_t indexMiddle, size_t indexRight)> &function, size_t ghostLayer)
 
void alsfvm::volume::for_each_internal_volume_index (const Volume &volume, size_t direction, const std::function< void(size_t indexLeft, size_t indexMiddle, size_t indexRight)> &function)