INMOST
A toolkit for distributed mathematical modeling
INMOST::MultiEntry Class Reference

Stack together multiple objects of AbstractEntry class. More...

#include <inmost_autodiff.h>

Inheritance diagram for INMOST::MultiEntry:
Collaboration diagram for INMOST::MultiEntry:

Public Member Functions

 MultiEntry (ElementType etype=NONE, MarkerType mask=0, bool inverse=false)
 Default constructor.
 
 ~MultiEntry ()
 Destructor.
 
void AddEntry (const AbstractEntry &entry)
 Add entry into block of entries.
 
AbstractEntryGetEntry (INMOST_DATA_ENUM_TYPE k)
 Retrieve entry from block of entries.
 
const AbstractEntryGetEntry (INMOST_DATA_ENUM_TYPE k) const
 Retrieve entry from block of entries.
 
INMOST_DATA_ENUM_TYPE NumEntries () const
 Total number of entries.
 
INMOST_DATA_REAL_TYPE Value (const Storage &e, INMOST_DATA_ENUM_TYPE pos) const
 Return value in vector of unknowns of the block at certain position.
 
INMOST_DATA_REAL_TYPE & Value (const Storage &e, INMOST_DATA_ENUM_TYPE pos)
 Return value in vector of unknowns of the block at certain position.
 
INMOST_DATA_ENUM_TYPE Index (const Storage &e, INMOST_DATA_ENUM_TYPE pos) const
 Return index in vector of indices of the block at certain position.
 
unknown Unknown (const Storage &e, INMOST_DATA_ENUM_TYPE pos) const
 Return unknown in vector of variables of the block at certain position.
 
Matrix< value_referenceValue (const Storage &e)
 Return vector filled with references to values of unknowns of the block.
 
rMatrix Value (const Storage &e) const
 Return vector filled with values of unknowns of the block.
 
iMatrix Index (const Storage &e) const
 Return vector filled with indices of unknowns of the block.
 
uMatrix Unknown (const Storage &e) const
 Return vector filled with unknowns of the block with their derivatives.
 
uMatrix operator[] (const Storage &e) const
 Return vector filled with unknowns of the block with their derivatives.
 
INMOST_DATA_ENUM_TYPE MatrixSize (const Storage &e) const
 The intended size of the matrix for this entry.
 
INMOST_DATA_ENUM_TYPE Size () const
 Number of tags in block.
 
INMOST_DATA_ENUM_TYPE Size (const Storage &e) const
 Number of entries for each tag in the block.
 
INMOST_DATA_ENUM_TYPE GetValueComp (INMOST_DATA_ENUM_TYPE unk) const
 Retrieve component of the tag related to unknown.
 
TagRealArray GetValueTag (INMOST_DATA_ENUM_TYPE unk) const
 Retrieve tag related to unknown value.
 
MeshGetMeshLink () const
 Retrieve mesh pointer.
 
AbstractEntryCopy () const
 Make a copy of the object.
 
- Public Member Functions inherited from INMOST::AbstractEntry
 AbstractEntry (ElementType etype=NONE, MarkerType mask=0, bool inverse=false)
 
MarkerType GetMask () const
 Retrieve mask of the block.
 
bool GetMaskInverse () const
 Retrieve if the mask is inverted.
 
void SetMask (MarkerType _mask, bool inverse=false)
 Set mask for the block.
 
ElementType GetElementType () const
 Retrieve element type of the block.
 
void SetElementType (ElementType _etype)
 Set element type for the block.
 
TagInteger GetOffsetTag () const
 Retrieve tag that stores enumeration offset on each element.
 
void SetOffsetTag (TagInteger tag)
 Retrieve tag that stores enumeration offset on each element.
 
bool isValid (const Storage &e) const
 Check that the block is valid on given element.
 
template<typename T >
Matrix< typename Demote< T >::type > Access (const Storage &e) const
 Return vector filled with either values or indices or unknowns of the block, depending on the template parameter.
 
template<typename T >
Demote< T >::type Access (const Storage &e, INMOST_DATA_ENUM_TYPE pos) const
 Return either value or index or unknown at specified position of the block, depending on the template parameter. More...
 
INMOST_DATA_ENUM_TYPE GetRegistrationIndex () const
 Retrieve a registration index.
 
void SynchronizeData ()
 Update variables contained in block on ghost elements of the grid. More...
 
virtual ~AbstractEntry ()
 Destructor.
 

Detailed Description

Stack together multiple objects of AbstractEntry class.

This may help enumerate together variable-sized and constant-sized entries or blocks. Essentially can replace BlockEntry but it may be less efficient.

Todo:
  1. Check it works
  2. Check if it crashes with different combinations of entries on different element types or different masks.

Definition at line 330 of file inmost_autodiff.h.


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