Documentation 6b54b78464
Loading...
Searching...
No Matches
CPrimitiveIndices.hpp File Reference

Abstract representation of flow primitive variable indices that tries to be efficient. More...

#include <cstdint>
#include <cstring>
#include <map>
#include <string>
#include "CEulerVariable.hpp"
#include "CIncEulerVariable.hpp"
#include "CNEMOEulerVariable.hpp"

Go to the source code of this file.

Classes

class  CPrimitiveIndices< IndexType >
 Abstract wrapper for the CIndices classes of CEulerVariable, CIncEulerVariable, etc. This should only be used when the concrete type of solver variable is not known. More...
 

Macros

#define GET_INDEX_IMPL(NAME)
 
#define INSERT_VAR_INDEX_PAIR(STRING, FUNCTION)    if (idx.FUNCTION() != notAvailable) nameToIndex[STRING] = idx.FUNCTION();
 

Functions

template<class IndexType >
std::map< std::string, IndexType > PrimitiveNameToIndexMap (const CPrimitiveIndices< IndexType > &idx)
 Maps primitive variable names to their indices based on a CPrimitiveIndices object.
 

Detailed Description

Abstract representation of flow primitive variable indices that tries to be efficient.

Version
8.5.0 "Harrier"

SU2 Project Website: https://su2code.github.io

The SU2 Project is maintained by the SU2 Foundation (http://su2foundation.org)

Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)

SU2 is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

SU2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with SU2. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

◆ GET_INDEX_IMPL

#define GET_INDEX_IMPL (   NAME)
Value:
inline IndexType NAME() const { \
switch (type_) { \
case 0: \
return reinterpret_cast<const CIncEulerVariable::template CIndices<IndexType>*>(data_)->NAME(); \
case 1: \
return reinterpret_cast<const CNEMOEulerVariable::template CIndices<IndexType>*>(data_)->NAME(); \
default: \
return reinterpret_cast<const CEulerVariable::template CIndices<IndexType>*>(data_)->NAME(); \
} \
}

◆ INSERT_VAR_INDEX_PAIR

#define INSERT_VAR_INDEX_PAIR (   STRING,
  FUNCTION 
)     if (idx.FUNCTION() != notAvailable) nameToIndex[STRING] = idx.FUNCTION();

Function Documentation

◆ PrimitiveNameToIndexMap()

template<class IndexType >
std::map< std::string, IndexType > PrimitiveNameToIndexMap ( const CPrimitiveIndices< IndexType > &  idx)

Maps primitive variable names to their indices based on a CPrimitiveIndices object.

Note
The variables names we try to map here must be kept in sync with CPrimitiveIndices. All index classes should use numeric_limits::max for variables that are not available.