ViennaLS
Loading...
Searching...
No Matches
viennals::OxidationSolverBase< T, D > Class Template Reference

Common Cartesian-grid infrastructure shared by the oxidation solver classes (diffusion, deformation). Provides the node lookup table, grid extents, and the core grid utility methods that operate on them. More...

#include <lsOxidationSolverBase.hpp>

Inheritance diagram for viennals::OxidationSolverBase< T, D >:
viennals::OxidationDeformation< T, D > viennals::OxidationDiffusion< T, D >

Classes

struct  GridBounds

Protected Types

using IndexType = viennahrle::Index<D>
using ConstSparseIterator

Protected Member Functions

template<class GridType>
void setMirrorSides (const GridType &grid)
int stencilOffset (const IndexType &index, unsigned direction, int offset) const
bool crosses (T a, T b) const
T valueAt (ConstSparseIterator &it, const IndexType &index) const
template<class OnGrid>
Vec3D< T > definedLevelSetGradient (ConstSparseIterator &it, const IndexType &index, OnGrid onGrid) const
bool inBounds (const IndexType &index) const
void initNodeLookup ()
std::size_t lookupNode (const IndexType &index) const
std::size_t linearIndex (const IndexType &index) const
bool increment (IndexType &index) const
std::size_t findNearbyNode (const IndexType &index) const
template<class Accept>
std::vector< std::size_t > findNearbyNodes (const IndexType &index, Accept accept) const
bool initializeGridFromInterfaces (SmartPointer< Domain< T, D > > reactionInterface, SmartPointer< Domain< T, D > > ambientInterface, SmartPointer< Domain< T, D > > maskInterface, bool useRequestedBounds, const IndexType &requestedMinIndex, const IndexType &requestedMaxIndex, std::size_t maxGridPoints, const std::string &solverName)
bool initializeGridFromMask (SmartPointer< Domain< T, D > > maskInterface, bool useRequestedBounds, const IndexType &requestedMinIndex, const IndexType &requestedMaxIndex, std::size_t maxGridPoints, const std::string &solverName)

Protected Attributes

std::vector< std::size_t > nodeLookupFlat
IndexType minIndex {}
IndexType maxIndex {}
std::array< std::size_t, D > extents {}
std::array< std::size_t, D > strides {}
T gridDelta = 1.
std::array< bool, D > mirrorLow_ {}
std::array< bool, D > mirrorHigh_ {}

Static Protected Attributes

static constexpr std::size_t noNode = std::numeric_limits<std::size_t>::max()

Detailed Description

template<class T, int D>
class viennals::OxidationSolverBase< T, D >

Common Cartesian-grid infrastructure shared by the oxidation solver classes (diffusion, deformation). Provides the node lookup table, grid extents, and the core grid utility methods that operate on them.

Member Typedef Documentation

◆ ConstSparseIterator

template<class T, int D>
using viennals::OxidationSolverBase< T, D >::ConstSparseIterator
protected
Initial value:
viennahrle::ConstSparseIterator<typename Domain<T, D>::DomainType>

◆ IndexType

template<class T, int D>
using viennals::OxidationSolverBase< T, D >::IndexType = viennahrle::Index<D>
protected

Member Function Documentation

◆ crosses()

template<class T, int D>
bool viennals::OxidationSolverBase< T, D >::crosses ( T a,
T b ) const
inlineprotected

◆ definedLevelSetGradient()

template<class T, int D>
template<class OnGrid>
Vec3D< T > viennals::OxidationSolverBase< T, D >::definedLevelSetGradient ( ConstSparseIterator & it,
const IndexType & index,
OnGrid onGrid ) const
inlineprotected

◆ findNearbyNode()

template<class T, int D>
std::size_t viennals::OxidationSolverBase< T, D >::findNearbyNode ( const IndexType & index) const
inlineprotected

◆ findNearbyNodes()

template<class T, int D>
template<class Accept>
std::vector< std::size_t > viennals::OxidationSolverBase< T, D >::findNearbyNodes ( const IndexType & index,
Accept accept ) const
inlineprotected

◆ inBounds()

template<class T, int D>
bool viennals::OxidationSolverBase< T, D >::inBounds ( const IndexType & index) const
inlineprotected

◆ increment()

template<class T, int D>
bool viennals::OxidationSolverBase< T, D >::increment ( IndexType & index) const
inlineprotected

◆ initializeGridFromInterfaces()

template<class T, int D>
bool viennals::OxidationSolverBase< T, D >::initializeGridFromInterfaces ( SmartPointer< Domain< T, D > > reactionInterface,
SmartPointer< Domain< T, D > > ambientInterface,
SmartPointer< Domain< T, D > > maskInterface,
bool useRequestedBounds,
const IndexType & requestedMinIndex,
const IndexType & requestedMaxIndex,
std::size_t maxGridPoints,
const std::string & solverName )
inlineprotected

◆ initializeGridFromMask()

template<class T, int D>
bool viennals::OxidationSolverBase< T, D >::initializeGridFromMask ( SmartPointer< Domain< T, D > > maskInterface,
bool useRequestedBounds,
const IndexType & requestedMinIndex,
const IndexType & requestedMaxIndex,
std::size_t maxGridPoints,
const std::string & solverName )
inlineprotected

◆ initNodeLookup()

template<class T, int D>
void viennals::OxidationSolverBase< T, D >::initNodeLookup ( )
inlineprotected

◆ linearIndex()

template<class T, int D>
std::size_t viennals::OxidationSolverBase< T, D >::linearIndex ( const IndexType & index) const
inlineprotected

◆ lookupNode()

template<class T, int D>
std::size_t viennals::OxidationSolverBase< T, D >::lookupNode ( const IndexType & index) const
inlineprotected

◆ setMirrorSides()

template<class T, int D>
template<class GridType>
void viennals::OxidationSolverBase< T, D >::setMirrorSides ( const GridType & grid)
inlineprotected

◆ stencilOffset()

template<class T, int D>
int viennals::OxidationSolverBase< T, D >::stencilOffset ( const IndexType & index,
unsigned direction,
int offset ) const
inlineprotected

◆ valueAt()

template<class T, int D>
T viennals::OxidationSolverBase< T, D >::valueAt ( ConstSparseIterator & it,
const IndexType & index ) const
inlineprotected

Member Data Documentation

◆ extents

template<class T, int D>
std::array<std::size_t, D> viennals::OxidationSolverBase< T, D >::extents {}
protected

◆ gridDelta

template<class T, int D>
T viennals::OxidationSolverBase< T, D >::gridDelta = 1.
protected

◆ maxIndex

template<class T, int D>
IndexType viennals::OxidationSolverBase< T, D >::maxIndex {}
protected

◆ minIndex

template<class T, int D>
IndexType viennals::OxidationSolverBase< T, D >::minIndex {}
protected

◆ mirrorHigh_

template<class T, int D>
std::array<bool, D> viennals::OxidationSolverBase< T, D >::mirrorHigh_ {}
protected

◆ mirrorLow_

template<class T, int D>
std::array<bool, D> viennals::OxidationSolverBase< T, D >::mirrorLow_ {}
protected

◆ nodeLookupFlat

template<class T, int D>
std::vector<std::size_t> viennals::OxidationSolverBase< T, D >::nodeLookupFlat
protected

◆ noNode

template<class T, int D>
std::size_t viennals::OxidationSolverBase< T, D >::noNode = std::numeric_limits<std::size_t>::max()
staticconstexprprotected

◆ strides

template<class T, int D>
std::array<std::size_t, D> viennals::OxidationSolverBase< T, D >::strides {}
protected

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